从fortran而不是C调用C ++函数

时间:2011-08-31 10:08:03

标签: fortran

是否可以从FORTRAN调用C ++函数,例如

#include <iostream.h>
extern "C"
{
    void single_cell(void)
    {
        cout<<"Hi from C++";
    }
}

因此,当我使用C时它工作正常但是使用C ++函数会产生错误 cout等未定义的错误

2 个答案:

答案 0 :(得分:3)

用作连接器的g ++和gfortran都带来了额外的库。这就是为什么Fortran / C ++组合比Fortran / C组合更棘​​手......只是使用正确的编译器,因为链接器不起作用,你需要添加一个库。已经建议与gfortran链接并指定C ++运行时库。您还可以使用g ++链接并指定Fortran运行时库。有关这两种方法的详细信息,请参阅Linking fortran and c++ binaries using gcc

答案 1 :(得分:1)

假设您可以将Fortran代码调用到C函数中,问题不在于代码,而在于您的链接方式。当您链接C ++对象时,您还需要引入C ++运行时。如果使用GCC,请链接g ++命令,它将引入您需要的部分。