我需要帮助!
我使用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
答案 0 :(得分:2)
您可能需要与g++
关联或在链接命令末尾显式添加-lstdc++
。
所以要么
gfortran programm.o func_c.o -o main -lstdc++
或
g++ programm.o func_c.o -o main -lgfortran -lstdc++
顺便说一句,你应该使用makefile