iostream - 链接器错误(使用g ++)

时间:2011-12-05 19:38:25

标签: g++ gnu gfortran

我需要帮助!

我使用g ++获取以下链接器错误:

`__static_initialization_and_destruction_0(int, int)':
undefined reference to `std::ios_base::Init::Init()'
undefined reference to `std::ios_base::Init::~Init()'

我需要从FORTRAN程序调用c ++函数。 简单的例子: C ++函数(func_c.cpp)是

 #include <iostream>
 extern "C" 
 {
    void cppfunction_(void);
 }
 void cppfunction_(void) 
 {
 }

FORTRAN函数(programm.f90)是

PROGRAM fprogram

  call cppfunction()

END PROGRAM fprogram

编译我用过

gfortran –c  -c programm.f90 -o programm.o
g++ -c func_c.cpp -o func_c.o
gfortran programm.o func_c.o -o main

我正在使用Ubuntu(Linux ubuntu 3.0.0-13-generic x86_64 x86_64 x86_64 GNU / Linux)和gnu - 4.6.1

1 个答案:

答案 0 :(得分:2)

您可能需要与g++关联或在链接命令末尾显式添加-lstdc++

所以要么

gfortran programm.o func_c.o -o main -lstdc++

g++ programm.o func_c.o -o main -lgfortran -lstdc++
顺便说一句,你应该使用makefile