我正在开发一个软件项目,其中的界面是使用 Qt Creator 设计的。此应用程序链接到一些在 Visual Studio 中构建的动态库。
我已经使用 Visual Studio 从源代码构建了 Qt,但是由于 Qt Creator 中的库是使用 MinGW 构建的,在应用程序和 DLL 之间传递 Qt STL 对象是否存在任何危险,考虑到事实上,它们都是用不同的编译器构建的?
我唯一能想到的就是debug和release之间的冲突。
更多信息:DLL 将使用的唯一 Qt 类是 QString、QVector 和 QMap。
编辑: PS:标准的STL呢?在 MinGW 和 MSVC 之间混合二进制文件有什么问题吗?
最佳答案
你不能。没有标准化的 C++ ABI ,并且 GCC 和 MSVC 的 ABI 肯定不兼容——ABI 甚至在不同版本的 MSVC 之间也不兼容。使用您要使用的编译器构建您的整个库。
关于c++ - 在使用 QtCreator 和 Visual Studio 构建的应用程序之间使用 Qt STL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8394748/