gpt4 book ai didi

c++ - 尝试将我的 C++ 可执行文件与 Fortran 库(Cygwin 环境)链接起来

转载 作者:太空狗 更新时间:2023-10-29 21:50:52 25 4
gpt4 key购买 nike

我所有的 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 机器上正确构建和运行。

非常感谢!

最佳答案

您需要将您的库命名为 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

关于c++ - 尝试将我的 C++ 可执行文件与 Fortran 库(Cygwin 环境)链接起来,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5137427/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com