我有一个库是从Windows上的英特尔Fortran编译器编译的
它有两个文件foo.dll
和foo.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
。