簡體   English   中英

Qt5Quickd.lib(Qt5Quickd.dll):致命錯誤LNK1112:模塊計算機類型“ x64”與目標計算機類型“ x86”沖突

[英]Qt5Quickd.lib(Qt5Quickd.dll) : fatal error LNK1112: module machine type 'x64' conflicts with target machine type 'x86'

我正在嘗試使用命令行而不是QtCreator GUI工具來構建Qt應用程序。 我正在通過運行以下命令來使用VS 2017開發人員命令提示符

"C:\Qt\Qt5.13.0\5.13.0\msvc2017_64\bin\qmake.exe" ..\qt3dsceneeditor.pro -spec win32-msvc "CONFIG+=debug" "CONFIG+=qml_debug"
"C:\Qt\Qt5.13.0\Tools\QtCreator\bin\jom.exe" -f ../../build-qt3dsceneeditor-Desktop_Qt_5_13_0_MSVC2017_64bit-Debug/Makefile qmake_all
"C:\Qt\Qt5.13.0\Tools\QtCreator\bin\jom.exe"

直到發生此錯誤的link階段為止,構建過程都可以正常進行:

link /NOLOGO /DYNAMICBASE /NXCOMPAT /DEBUG /DLL /SUBSYSTEM:WINDOWS /MANIFEST:embed /OUT:debug\editorlib.dll @C:\Users\me\AppData\Local\Temp\editorlib.dll.13948.102703.jom
Qt5Quickd.lib(Qt5Quickd.dll) : fatal error LNK1112: module machine type 'x64' conflicts with target machine type 'x86'
jom: C:\Users\me\repos\qt3d-editor\scripts\editorlib\Makefile.Debug [debug\editorlib.dll] Error 1112
jom: C:\Users\me\repos\qt3d-editor\scripts\editorlib\Makefile [debug] Error 2
jom: C:\Users\me\repos\qt3d-editor\scripts\Makefile [sub-editorlib-make_first-ordered] Error 2

我研究了其他人報告的類似錯誤,並提到需要更改Visual Studio配置。 但就我而言,我沒有使用VS GUI。 如何更改VS 2017開發人員命令提示符上的配置?

如果有人可以介紹使用命令行工具而不是QtCreator GUI構建Qt應用程序的良好指南,我也非常感謝!

如@code_fodder所建議,我正在查看QtCreator日志。 QtCreator確實編譯/鏈接沒有任何錯誤:

QtCreator很好

命令行錯誤是:

命令行出錯

我也嘗試使用nmake而不是jom ,這會遇到相同的錯誤:

echo Setting up environment for Qt usage...
set PATH=C:\Qt\Qt5.13.0\5.13.0\msvc2017_64\bin;%PATH%
echo --------------------------------------
mkdir C:\Users\me\repos\build
cd C:\Users\me\repos\build\
qmake.exe -makefile C:\Users\me\repos\qt3d-editor\qt3dsceneeditor.pro
nmake /u /f Makefile

更新

在Linux上,我不會遇到此類錯誤。 在openSUSE Leap 15.1上,此腳本可以正常工作:

#!/bin/sh 

export PATH=~/Qt5.13.0/5.13.0/gcc_64/bin/:$PATH 
mkdir build 
cd build 
qmake ../qt3dsceneeditor.pro -spec linux-icc-64 CONFIG+=qtquickcompiler 
make -j4

這個腳本解決了問題:

set PATH=C:\Qt\Qt5.13.0\5.13.0\msvc2017_64\bin;%PATH%
set PATH=C:\Qt\Qt5.13.0\Tools\QtCreator\bin;%PATH%
mkdir C:\Users\me\repos\qt3d-editor\scripts\build-deploy\temp
cd C:\Users\me\repos\qt3d-editor\scripts\build-deploy\temp
qmake.exe C:\Users\me\repos\qt3d-editor\qt3dsceneeditor.pro -spec win32-msvc "CONFIG+=qtquickcompiler"
jom.exe qmake_all
jom.exe

我不確定哪個修改可以解決問題。


同樣在調試模式下,構建很好:

qmake.exe C:\Users\me\repos\qt3d-editor\qt3dsceneeditor.pro -spec win32-msvc "CONFIG+=debug" "CONFIG+=qml_debug"

我在VS 2017的x64本機工具命令提示符上運行腳本:

VS 2017的x64本機工具命令提示符

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM