【问题标题】:MinGw undefined symbol for C++ symbols in VC DLLVC DLL 中 C++ 符号的 MinGw 未定义符号
【发布时间】: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 网站上找到的各种方法,但仍无法找出问题所在。

谢谢, 杰拉德

【问题讨论】:

标签: c++ windows visual-studio dll mingw


【解决方案1】:

我的意思是,这应该是可能的吧?

错了!

您的 DLL 是使用不同的工具链构建的,具有不同的标准库实现,谁知道还有什么。它们不兼容。

使用相同的工具链构建您项目的所有组件。

【讨论】:

  • 那么这里解释的有关 VC 和 MinGW 库的互操作性的信息 (mingw.org/wiki/msvc_and_mingw_dlls) 仅适用于 C 而不是 C++ 库?
  • @nutrina:没有关于支持thiscall 的内容。尽管从您的问题中不清楚您的调用约定实际上是什么。一个测试用例可能会有所帮助。
猜你喜欢
  • 2012-09-05
  • 1970-01-01
  • 1970-01-01
  • 2011-11-19
  • 1970-01-01
  • 2014-06-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多