从C ++调用Fortran子例程,链接时未定义引用

纳撒维

我有一个想从C ++程序调用的Fortran子例程。它使用一长串浮点参数,并使用iso_c_binding内部模块:

subroutine parasolve ( ...... ) bind (c, name='c_parasolve')
  use,intrinsic :: iso_c_binding
  implicit none
....

根据我的阅读,我了解到我需要使用C ++的“ extern”命令来定义外部函数,然后再调用它。我尝试了两种方法。首先:

extern "C" void c_parasolve( .... );

在编译时返回“在字符串常量之前的预期非限定ID”,而第二个:

extern void c_parasolve( .... );

编译就很好,但是无法链接“对'c_parasolve(....)的未定义引用”,并且ld返回1。

我正在编译:

g++ -c main.cpp

等,以及

gfortran -ffree-form -std=f2003 -c parasolve.f03

将它们放入.o ELF中,然后尝试链接:

g++ main.o otherfiles.o parasolve.o -lgfortran

调用此Fortran函数的正确方法是什么?

托尼

看起来您的extern "C"声明在函数或类定义中。不允许这样做-它必须位于源文件的顶层。(是的,错误消息可能更有用!)

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

将C ++程序与Fortran库链接时对_rpoly_的未定义引用

来自分类Dev

与C ++库链接时未定义的引用

来自分类Dev

在C ++中链接静态库时对...的未定义引用

来自分类Dev

调用 C 函数的 C++ 程序在 g++ 链接期间获取未定义的引用

来自分类Dev

将静态C库与C ++代码链接时出现“未定义的引用”错误

来自分类Dev

C ++:对函子的重载调用运算符的未定义引用

来自分类Dev

包含math.h和链接libm时的C sinhl未定义引用

来自分类Dev

与使用名称空间的外部库链接时,如何解决C中的未定义引用?

来自分类Dev

使用类进行链接时发生简单的C ++未定义引用错误

来自分类Dev

从C#调用FORTRAN子例程

来自分类Dev

在子文件夹中编译.h和.cpp时的C ++未定义引用

来自分类Dev

CMake CUDA C ++链接错误-对`someFunction()`的未定义引用

来自分类Dev

C ++未定义的引用

来自分类Dev

将C ++对象传递给C例程时的未定义行为

来自分类Dev

C:使用extern时未定义对变量的引用

来自分类Dev

在C ++中使用库时“未定义的引用”

来自分类Dev

错误:编译C ++时出现“未定义引用”

来自分类Dev

编译时SIFT代码(C ++)中的未定义引用

来自分类Dev

在C ++中使用库时出现“未定义的引用”

来自分类Dev

编译C ++时对main的未定义引用

来自分类Dev

编译时SIFT代码(C ++)中的未定义引用

来自分类Dev

尝试使用标头(QPID / Proton C ++)进行构建时出现“未定义的引用”链接错误

来自分类Dev

将Fortran子例程链接到C ++程序时出错

来自分类Dev

从C ++调用FORTRAN子例程会产生非法的参数值

来自分类Dev

我应该在C端未定义的子例程旁边放置“ bind(C)”吗?

来自分类Dev

调用C / Fortran例程时忽略evalWithTimeout吗?

来自分类Dev

C编译-“未定义引用”?

来自分类Dev

C- Readline()未定义引用

来自分类Dev

C ++对模板方法的未定义引用

Related 相关文章

  1. 1

    将C ++程序与Fortran库链接时对_rpoly_的未定义引用

  2. 2

    与C ++库链接时未定义的引用

  3. 3

    在C ++中链接静态库时对...的未定义引用

  4. 4

    调用 C 函数的 C++ 程序在 g++ 链接期间获取未定义的引用

  5. 5

    将静态C库与C ++代码链接时出现“未定义的引用”错误

  6. 6

    C ++:对函子的重载调用运算符的未定义引用

  7. 7

    包含math.h和链接libm时的C sinhl未定义引用

  8. 8

    与使用名称空间的外部库链接时,如何解决C中的未定义引用?

  9. 9

    使用类进行链接时发生简单的C ++未定义引用错误

  10. 10

    从C#调用FORTRAN子例程

  11. 11

    在子文件夹中编译.h和.cpp时的C ++未定义引用

  12. 12

    CMake CUDA C ++链接错误-对`someFunction()`的未定义引用

  13. 13

    C ++未定义的引用

  14. 14

    将C ++对象传递给C例程时的未定义行为

  15. 15

    C:使用extern时未定义对变量的引用

  16. 16

    在C ++中使用库时“未定义的引用”

  17. 17

    错误:编译C ++时出现“未定义引用”

  18. 18

    编译时SIFT代码(C ++)中的未定义引用

  19. 19

    在C ++中使用库时出现“未定义的引用”

  20. 20

    编译C ++时对main的未定义引用

  21. 21

    编译时SIFT代码(C ++)中的未定义引用

  22. 22

    尝试使用标头(QPID / Proton C ++)进行构建时出现“未定义的引用”链接错误

  23. 23

    将Fortran子例程链接到C ++程序时出错

  24. 24

    从C ++调用FORTRAN子例程会产生非法的参数值

  25. 25

    我应该在C端未定义的子例程旁边放置“ bind(C)”吗?

  26. 26

    调用C / Fortran例程时忽略evalWithTimeout吗?

  27. 27

    C编译-“未定义引用”?

  28. 28

    C- Readline()未定义引用

  29. 29

    C ++对模板方法的未定义引用

热门标签

归档