如何使用MinGW-W64 ld在Windows上链接ifort的dll

时间:2017-03-31 13:08:09

标签: windows dll ld intel-fortran mingw-w64

我有一个库是从Windows上的英特尔Fortran编译器编译的

它有两个文件foo.dllfoo.lib

因为windows的ifort的函数名称修饰与gfortran或linux的ifort不同,所以当我直接链接foo.lib(-lfoo)时,它将导致undefined reference to 'bar_'

我使用pexports生成def文件并按照

进行编辑
LIBRARY foo.dll
EXPORTS
bar_ = bar
...

并使用dlltool -d foo.def -l foo.a制作.a文件

我可以成功链接到foo.a,但是当程序运行时,它会抛出

The specified procedure could not be found.

Entry Point Not Found

如何直接将源对象中的bar_函数链接到dll中的bar函数?

我不想写经线。

P.S。

我还试图在Windows上的Mingw-w64上静态链接到原始linux的.a,ld show could not read symbols: Invalid operation

0 个答案:

没有答案