Qt 模块错误 - QtOpenGL 中的 LNK 1112

Posted

技术标签:

【中文标题】Qt 模块错误 - QtOpenGL 中的 LNK 1112【英文标题】:Qt module error - LNK 1112 in QtOpenGL 【发布时间】:2016-12-14 10:00:28 【问题描述】:

我正在尝试在 Microsoft Visual Studio 2010 中构建与 Qt 库连接的项目 (x64)。我要编译的项目是使用 Visual Studio 2008 构建的。

我添加了所有依赖项,下载了编译的 64 位 Qt 库,并在 VS 2010 中对项目属性进行了所有适当的更改。虽然,我收到以下错误:

 Error  2616 error LNK1112: module machine type 'X86' conflicts with
 target machine type 'x64'  D:\project\Windows\QtOpenGL4.lib(QtOpenGL4.dll)

我检查了我的 .dll 和 .lib 文件,它们是 x64 位版本。另外,我的 QtOpenGL4.dll 文件位于错误中提到的路径的另一个路径中。

会不会是 QtOpenGL4 模块的错误?我怎么能解决这个问题?请你帮助我好吗?

我为构建 64 位版本的 Qt 所遵循的说明在此链接中:https://en.wikibooks.org/wiki/Opticks_Developer_Guide/Getting_Started/Building_Qt_From_Source

【问题讨论】:

【参考方案1】:

我终于在我的错误中找到了解决方案。我再次编译了 64 位的 Qt 库,并在项目属性中输入了所有正确的值。我也在

中输入了正确的路径

项目属性 -> 链接器 -> 输入 -> 附加依赖项。

通过正确的路径,它为我解决了链接错误。

我不得不提一下,我还从这个链接的答案中下载了预编译库 How to compile Qt for 64-bit Windows from a 32-bit environment with Visual C++ 2010 Express?

【讨论】:

【参考方案2】:

您可能正在尝试将您的 64 位项目与 32 位 Qt 库链接。

This 详细说明了您所面临的错误。

同样,如果您使用 x64 编译器创建一个模块,而另一个 模块与 x86 编译器,并尝试链接它们,链接器将 生成 LNK1112。

检查您是否使用 64 位预编译的 Qt 库。

【讨论】:

感谢桑卡尔的帮助。我已经从源代码编译了 64 位的 Qt,但我仍然遇到同样的问题。编译有问题吗?

以上是关于Qt 模块错误 - QtOpenGL 中的 LNK 1112的主要内容,如果未能解决你的问题,请参考以下文章

Qt OpenGL模块和Qt/3D有啥区别

尝试继承时Qt中的LNK错误?

QtOpengl的演变[关闭]

vs2017+QT开发添加新模块出现LNK2019问题

QT Creator - LNK2019 和 LNK1120 错误 [重复]

LNK2001静态属性和方法错误(Qt,C++)[重复]