我所有的财富来源都用
编译好了gfortran -g -c fortran_source.f
并存档在名为“mylibrary.a”的单个库中 在那里,存在一种称为“myfunction”的兴趣函数
在我的C ++文件中,我有:
extern "C" void myfunction_(/* all pointers */);
int main(){
cerr << "Mark 1" << endl;
myfunction_(/* all pointers or address_of my variables */);
cerr << "Mark 2" << endl;
}
我编译了我的c ++可执行文件,将库与
链接起来g++ mainfile.cpp -L./ -lmylibrary -lgfortran
没有错误或警告......
然而,当我运行我的程序时,它会在调用myfunction的第一个点挂起(打印“Mark1”但不打印“Mark 2”)......
请注意,此程序在具有ifort(链接-lifcore)的Linux计算机上正确构建和运行。
非常感谢!
答案 0 :(得分:2)
您需要将您的库命名为libMyLibrary.a并将其放在当前目录中,然后您可以使用
链接它g++ mainfile.cpp -L. -lMyLibrary
或
g++ mainfile.cpp ./libMyLibrary.a
您可以将图书馆放在其他地方。在第一种情况下,您将-L.
更改为-L/path/to/the/lib
,在第二个./libMyLibrary.a
更改为/path/to/the/lib/libMyLibrary.a