VC DLL 中 C++ 符号的 MinGw 未定义符号
Posted
技术标签:
【中文标题】VC DLL 中 C++ 符号的 MinGw 未定义符号【英文标题】:MinGw undefined symbol for C++ symbols in VC DLL 【发布时间】:2015-11-16 12:37:51 【问题描述】:我有一个使用 Microsoft Visual Studio 创建的 DLL。它使用
导出函数和类__declspec(dllexport)
我能够在另一个用 VS 构建的 DLL 中成功使用这个 DLL。 但是,当我尝试使用 MinGW 编译相同的 DLL 时,我不断收到来自该 DLL 的符号的“未定义引用”错误。 我尝试像这样编译它:
g++ -c App.cpp
g++ -shared -o Live.dll App.o -lTest
有人可以提示我缺少什么吗?我的意思是,这应该是可能的吧?
我已经尝试了我在 MinGW 网站上找到的各种方法,但仍无法找出问题所在。
谢谢, 杰拉德
【问题讨论】:
类似:***.com/q/9253606/560648 ***.com/questions/22116343/… 等。 【参考方案1】:我的意思是,这应该是可能的吧?
错了!
您的 DLL 是使用不同的工具链构建的,具有不同的标准库实现,谁知道还有什么。它们不兼容。
使用相同的工具链构建您项目的所有组件。
【讨论】:
那么这里解释的有关 VC 和 MinGW 库的互操作性的信息 (mingw.org/wiki/msvc_and_mingw_dlls) 仅适用于 C 而不是 C++ 库? @nutrina:没有关于支持thiscall
的内容。尽管从您的问题中不清楚您的调用约定实际上是什么。一个测试用例可能会有所帮助。以上是关于VC DLL 中 C++ 符号的 MinGw 未定义符号的主要内容,如果未能解决你的问题,请参考以下文章