LNK1112: module machine type ' X86' conflicts with target machine type 'THUMB'
我正在尝试为Windows CE / Windows Mobile构建Qt,并遵循此指南:http://doc.qt.io/archives/4.6/install-wince.html 以下是我迄今为止采取的步骤:
1. 我下载了qt-everywhere-opensource-src-4.6.3 2. 解压到C:\ Qt \ qt-everywhere-opensource-src-4.6.3 3. 打开Visual Studio命令提示符并运行以下命令
configure -platform win32-msvc2008 -xplatform wincewm60professional-msvc2008 -webkit -openssl -arch windowsce -opensource -qt-gif -qt-libjpeg -qt-libpng
4. 配置步骤成功完成。
5. 我尝试setcepaths wincewm60professional-msvc2008
,然后出现以下错误“找不到指定的SDK:Windows Mobile 6 Professional SDK(ARMV4I)” “'tmp_created_script_setup.bat'不被认为是内部或外部命令,可操作的程序或批处理文件。” “找不到C:\ Qt \ qt-everywhere-opensource-src-4.6.3 \ tmp_created_script_setup.bat” “选择了Windows Mobile 6 Professional,环境已设置”
这可能是我的问题,因为如果我键入
checksdk -list
,则会得到此输出。Available SDKs:
SDK Name: Pocket PC 2003 (ARMV4)
SDK Name: Smartphone 2003 (ARMV4)
由于某些原因,即使我可以在Visual Studio 2008中创建、构建和运行Windows Mobile Professional 6.5应用程序,但无法检测到Windows Mobile Professional 6.5 SDK。
不过,setcepaths
命令应该设置一些环境变量以覆盖默认的Visual Studio包含路径,并包含它们的Windows Mobile对应项,因此我按照指南自己设置了它们:
set INCLUDE=C:\Program Files\Microsoft Visual Studio 9.0\VC\ce\include;C:\Program Files\Windows Mobile 6 SDK\PocketPC\Include\Armv4i
set LIB=C:\Program Files\Microsoft Visual Studio 9.0\VC\ce\lib\armv4i;C:\Program Files\Windows Mobile 6 SDK\PocketPC\Lib\Armv4i
set PATH=C:\Program Files\Microsoft Visual Studio 9.0\VC\ce\bin\x86_arm;%PATH%
安装完成后,我尝试运行nmake
,但是遇到了以下错误:
C:\Qt\qt-everywhere-opensource-src-4.6.3>nmake
Microsoft (R) Program Maintenance Utility Version 9.00.30729.01
Copyright (C) Microsoft Corporation. All rights reserved.
cd src\winmain\ && "C:\Program Files\Microsoft Visual Studio 9.0\VC\BIN\
nmake.exe" -f Makefile
Microsoft (R) Program Maintenance Utility Version 9.00.30729.01
Copyright (C) Microsoft Corporation. All rights reserved.
"C:\Program Files\Microsoft Visual Studio 9.0\VC\BIN\nmake.exe" -f Makef
ile.Debug all
Microsoft (R) Program Maintenance Utility Version 9.00.30729.01
Copyright (C) Microsoft Corporation. All rights reserved.
lib /SUBSYSTEM:WINDOWSCE,5.02 /MACHINE:THUMB /OUT:..\..\lib\qtmaind.lib
@C:\Users\AHMED~1.SAB\AppData\Local\Temp\nm6312.tmp
Microsoft (R) Library Manager Version 9.00.21022.08
Copyright (C) Microsoft Corporation. All rights reserved.
tmp\obj\debug_shared\qtmain_win.obj
tmp\obj\debug_shared\qtmain_win.obj : fatal error LNK1112: module machine type '
X86' conflicts with target machine type 'THUMB'
NMAKE : fatal error U1077: '"C:\Program Files\Microsoft Visual Studio 9.0\VC\ce\
bin\x86_arm\lib.EXE"' : return code '0x458'
Stop.
NMAKE : fatal error U1077: '"C:\Program Files\Microsoft Visual Studio 9.0\VC\BIN
\nmake.exe"' : return code '0x2'
Stop.
NMAKE : fatal error U1077: 'cd' : return code '0x2'
Stop.