【发布时间】:2009-12-31 15:27:06
【问题描述】:
我想从第三方 DLL 访问一些子例程。这些函数使用 STDCALL 作为调用约定。
运行dumpbin /export foo.dll 给了我类似的东西:
...
7 6 00004B40 Foo@16
...
我使用以下代码编译我的代码:
gfortran test.f90 -o test.exe -Wl,foo.dll
我收到一个错误:undefined reference to '_foo_'(注意下划线)。
我尝试添加 -mrtd 编译标志,以及我在 Google 上搜索的其他标志,但均无济于事。
如何告诉 fortran 不要添加下划线?
编辑:需要澄清一下。
- 我有一个现有的 DLL,但我没有源代码。
- 如果有帮助,此 DLL 是用 Visual Basic 编写的。
- 我想从 fortran调用这个DLL。
- 当我在 test.f90 中写入时:
Foo(1.0d0)我得到一个undefined reference to '_foo_'链接错误
【问题讨论】: