【问题标题】:How to compile Qt 4.6.3 for Windows Mobile (Windows CE) under Windows?如何在 Windows 下编译 Qt 4.6.3 for Windows Mobile (Windows CE)?
【发布时间】:2010-07-26 11:22:58
【问题描述】:
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)

由于某种原因,没有检测到 Windows Mobile Professional 6.5 SDK,即使我可以从 Visual Studio 2008 创建、构建和运行 Windows Mobile Professional 6.5 应用程序。

尽管如此,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.

【问题讨论】:

    标签: c++ qt windows-ce


    【解决方案1】:
    1. 下载并安装 Qt SDK for Open Source C++ for Windows http://qt.nokia.com/downloads/sdk-windows-cpp
    2. 安装 Visual Studio。
    3. 安装 Visual Studio SP1。
    4. 安装 .Net Compact Framework。
    5. 如果操作系统是 XP 或更早版本,请安装 Microsoft Active Sync。
    6. 如果操作系统是 Vista 或更高版本,请安装 Windows Mobile Device Center。
    7. 安装 Windows Mobile 6 SDK。
    8. 下载并解压 Qt C++ WinCE SDK(例如 C:\Qt\QtWinCE)。
    9. 下载并安装 Qt C++ Windows for Visual Studio(例如 C:\Qt\QtVS2008)。
    10. 在 Qt WinCE 文件夹和 Qt C++ Windows for Visual Studio 文件夹中安装 Qt Visual Studio 插件。
    11. 更改系统环境变量:
      • 设置 INCLUDE=C:\Program Files (x86)\Microsoft Visual Studio 9.0\VC\ce\include;C:\Program Files (x86)\Windows Mobile 6 SDK\PocketPC\Include\Armv4i;
      • 设置 LIB=C:\Program Files (x86)\Microsoft Visual Studio 9.0\VC\ce\lib\armv4i;C:\Program Files (x86)\Windows Mobile 6 SDK\PocketPC\Lib\Armv4i;李>
      • 设置 QTDIR=C:\Qt\QtWinCE;C:\Qt\QtVS2008;C:\Qt\2010.02.1;C:\Qt\2010.02.1\qt;
      • 设置 PATH=C:\Program Files (x86)\Microsoft Visual Studio 9.0\VC\ce\bin\x86_arm;%PATH%;
    12. 配置。
    13. setcepaths wincewm60professional-msvc2008
    14. nmake

    【讨论】:

      【解决方案2】:

      正如你所说,你没有 WM6 SDK。

      SDK 是here。 参见Qt for Windows CE Requirements 引用自Installing Qt for Windows CE

      • 请注意,SDK 6.0 不是 6.5。

      【讨论】:

        猜你喜欢
        • 2011-03-02
        • 1970-01-01
        • 1970-01-01
        • 2011-12-29
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2015-01-16
        • 2010-10-27
        相关资源
        最近更新 更多