我有一个在linux上运行的应用程序,我试图在Windows上导入。我已经设置了所有库,并对.pro文件进行了更改。现在当我尝试构建项目时,我得到了这个错误:
error: LNK1112: module machine type 'x64' conflicts with target machine type 'X86'
我不确定导致此问题的原因。我使用的是32位Qt创建者。我知道有几个链接谈论改变项目属性,但所有这些都与在Visual Studio中更改它们有关。我正在使用Qt创建者并通过Qt UI运行项目。所以我不确定如果必须解决这个问题,必须通过Qt对项目属性进行哪些更改。
答案 0 :(得分:6)
我遇到了同样的问题,但我的情况有点不同,我的目标是x64架构,当我将其更改为x86时出现此错误,我花了一些时间才弄清楚我必须重新构建项目以匹配CPU架构。
答案 1 :(得分:3)
很明显,你正在编译32位目标,但你的一些库是64位,很可能你已经知道了。
确保Qt Creator为您的特定项目使用正确的编译器(VC ++,MinGW)和机器模型(32,64位)。
打开您的项目
File -> Open File or Project... -> ... -> yourproject.pro
检查Qt Creator是否自动检测到符合库的机器型号的编译器。
Tools -> Options -> Build & Run -> Kits
选择(定义)所需的Build Kit以及项目的其他设置。
Select "Projects" from the left panel.
In the upper pane is shown the associated Kits for your project.
You can add more Kits with the "Add Kit v" button.
Hovering the mouse over the associated Kits, a little arrow is shown.
Clicking on it provides operations to apply to the Kit.
You can change or remove the Kit from your project following this little arrow.
根据新信息生成新的Makefile。
Build -> Run qmake
从头开始重建。
Build -> Rebuild All
答案 2 :(得分:0)
我看到这篇文章是前一阵子的,但是我遇到了同样的问题,这可能是其他遇到此问题的人的解决方案。我使用了不同的设置,但出现了相同的错误。
我的应用程序在装有Visual Studio 2019的Windows上运行,我需要我的应用程序才能在x64和x86配置中正常工作。当我尝试在x86中运行项目时遇到此错误。这是我的解决方法。
Project -> <ProjectName> Properties
Configuration Properties -> Qt Project Settings
General -> Qt Installation
您可以通过在VS的Qt VS工具扩展中检查您的Qt选项来进行检查。如果没有,请确保将其添加。我的话说“ Qt5.13.2”,对我来说,它指向的是Qt的x64版本,但它必须指向x86的版本。
Extensions -> Qt VS Tools -> Qt Options
按下“添加”按钮以“添加新的Qt版本”
Build Host: Windows
Version name: <give it a name> (I did "Qt5.13.2_86")
Path: <Path to correct build> (mine was "C:\Qt\Qt5.13.2\5.13.2\msvc2017")
compiler: msvc (automatically sets to this when selecting Windows for the Build Host)
按“确定”
这是我针对不同问题但存在相同错误的解决方案。