使用 vc++ MinGW QT 项目中的库
所以有一个我使用 MinGW QT 编写的用户界面。在 UI 中,我尝试引用 Visual Studio 项目中的对象。有些对象我可以很好地引用和使用,但我遇到问题的对象使用第 3 方 COM 对象。
这些是我遇到的错误:
undefined reference to 'CoInitialize@4'
undefined reference to 'CoCreateInstance@20'
我读到你不能轻松地混合 MinGW 和 VS 库。问题是,我使用的一些 GUI 库只能使用 MinGW 进行编译,因此我不能只更改 QT 以使用 Microsoft 编译器。
有什么方法可以让它识别这些功能,还是我最终不得不重写所有内容?
我尝试将第 3 方 dll 包含在 .pro 文件中,但这并不能解决任何问题。
So have a user interface that I wrote using MinGW QT. In the UI I'm trying to reference objects from my Visual Studio project. Some objects I can reference and use just fine, but the one I'm having problems with uses a 3rd party COM object.
These are the errors I'm getting:
undefined reference to 'CoInitialize@4'
undefined reference to 'CoCreateInstance@20'
I've read that you can't easily mix MinGW and VS libraries. The catch is, Some of the GUI libraries I'm using only compile with MinGW, so I can't just change QT to use the Microsoft compiler.
Is there any way I can get it to recognize these functions, or am I going to end up having to rewrite everything?
I've tried including the 3rd party dll in the .pro file, but that doesn't fix anything.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
这些都是链接错误,您只需要链接到任何具有 COM 函数的库(根据快速谷歌的 ole32)。你也许可以调用 mingw 中使用 msvc 编译的 dll 中的代码,只要它是 C 代码而不是 C++ 即可。
Those are linking errors, you just need to link with whatever lib has the COM functions (ole32 according to a quick google). You can probably call code in a dll compiled with msvc from mingw, as long as it's C code not C++ though.
MSVC 和 MinGW 不兼容 ABI,因此您需要使用相同的编译器编译所有模块以避免此类问题。
MSVC and MinGW are not ABI compatible, so you need to compile all modules with same compiler to avoid this kind of problems.