如何在Windows XP上为WinCE编译Qt 4.5.1?

时间:2009-05-27 22:15:20

标签: qt qt4 windows-ce

我正在尝试在Windows XP上编译Qt 4.5.1,目标是wince50。

我已经安装了先决条件(VS2008,WinCE50SDK,ActivePerl 5.10)并已下载qt-embedded-wince-opensource-src-4.5.1.zip,它已安装在c:\ Qt \ 4.5.1和c中:\ Qt \ 4.5.1 \ bin已添加到路径中。

在VS命令提示符下,我导航到c:\ Qt \ 4.5.1并执行以下命令:

configure -platform win32-msvc2008 -xplatform wince50standard-armv4i-msvc2008 -qt-gif -qt-libjpeg -qt-libpng -webkit -openssl -arch windowsce -opensource -iwmmxt

我收到以下错误:

c:\qt\4.5.1\include\qtcore\../../src/corelib/tools/qvector.h(758) : fatal error C1083: Cannot open include file: 'QtCore/QPointF': No such file or directory
NMAKE : fatal error U1077: '"C:\Program Files\Microsoft Visual Studio 9.0\VC\BIN\cl.EXE"' : return code '0x2'
Stop.

我已经尝试过以前版本的Qt,低至4.4.3和两台不同的XP机器(一台带有干净的版本)和各种不同的配置选项。每次我得到同样的错误。

我错过了什么?

更新
好的,我还有一点,虽然这可能是一个死胡同。

如果我使用qt-all-opensource-src-4.5.1作为基础,那么运行configure它成功构建qmake,但随后失败的wince文件失败。所以我接着src并从qt-embedded-wince-opensource-src-4.5.1中包含文件夹并将它们复制到qt-all文件夹的顶部,然后configure成功完成。

但是随后nmake失败并出现以下错误:

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\BIN\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.

使用这种方法配置的事实意味着qt-embedded-wince-opensource-src-4.5.1版本缺少内容。

关于接下来要尝试编译的任何建议都非常受欢迎。

3 个答案:

答案 0 :(得分:1)

您是否正确设置了环境变量?即拥有相应的INCLUDE和LIB定义的.bat通常很好。如果您已经安装了Qt,那么安装了一个Qt命令shell,可以作为一个很好的模板,为您提供具有正确环境变量的命令提示符,具体取决于您要使用的Qt版本。

答案 1 :(得分:0)

我也是 - 确保您下载了WinCE软件包而不是Windows安装程序,因为它不支持WinCE。

答案 2 :(得分:0)

qt-embedded-wince-opensource-src-4.5.1.zip似乎没有丢失文件,它包含include\QtCore\QPointF。我测试了这个源包,我可以配置好。

提取源包后文件c:\Qt\4.5.1\include\QtCore\QPointF是否存在?

我可能会在这里抓住稻草,但是:你用什么程序来解压缩来源?您的错误消息中的文件名全部以小写显示,您的解压缩程序是否将所有文件转换为小写?您使用的是区分大小写的文件系统吗? (我不知道在Windows上是否甚至可能......)这可能是一个红色的鲱鱼,因为我知道所有cl.exe都会在错误消息中随意降低文件名。

如果这没有帮助,请发布更多错误,这样我们就可以知道究竟是什么无法编译以及哪些参数传递给cl.exe。