【发布时间】:2020-01-21 16:20:46
【问题描述】:
MinGW 应编译一个共享 C 库mylib,其中包含类似的函数
declspec(dllexport) int foo();
该库应在 Visual Studio 下的 C++ 应用程序中使用。
构建库(在 CMake 下,使用选项 GNUtoMS)生成三个文件,mylib.dll mylib.dll.a mylinb.lib。要检查后者,
dumpbin /HEADERS mylib.lib
为每个导出的函数打印一个姿态。上述函数foo 的立场包含这一行
Symbol name : _foo
所以,MinGW不生成前缀_imp_。预计链接依赖应用程序会失败,因为 Visual Studio 找不到 _imp_foo。
如何做到这一点?
【问题讨论】:
-
你写了“共享C库”,在Windows中就是“mylib.dll”。那你的“mylib.lib”是什么?它是如何产生的?
-
@jacob:我编辑了我的问题来回答你的评论。
标签: mingw cross-compiling dllexport