试图将我的C ++可执行文件与Fortran库(Cygwin环境)链接

时间:2011-02-28 01:38:32

标签: c++ cygwin fortran

我所有的财富来源都用

编译好了
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计算机上正确构建和运行。

非常感谢!

1 个答案:

答案 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