Gil*_*aor 1 dll fortran gfortran
我想从第三方 DLL 访问一些子例程。这些函数使用 STDCALL 作为调用约定。
跑步dumpbin /export foo.dll给了我类似的东西:
...
7 6 00004B40 Foo@16
...
Run Code Online (Sandbox Code Playgroud)
我使用以下方法编译我的代码:
gfortran test.f90 -o test.exe -Wl,foo.dll
Run Code Online (Sandbox Code Playgroud)
我收到错误:(undefined reference to '_foo_'注意下划线)。
我尝试添加-mrtd编译标志以及我在谷歌上搜索的其他标志,但都无济于事。
我怎样才能告诉 fortran 不要添加下划线?
编辑:需要进行一些澄清。
Foo(1.0d0)出现undefined reference to '_foo_'链接错误您尝试过 -fno-下划线 吗?
我在http://www.rhinocerus.net/forum/lang-fortran/604847-fortran-dll-call-excel-2.html上找到了 Tobias Burnus(gfortran 开发人员)的帖子(接近尾声)——他建议使用编译器指令而不是 -mrtd。