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的主要内容,如果未能解决你的问题,请参考以下文章