2

我正在尝试在针对 wince50 的 Windows XP 上编译 Qt 4.5.1。

我安装了先决条件(VS2008、WinCE50SDK、ActivePerl 5.10)并下载了已安装在 c:\Qt\4.5.1 和 c:\Qt 中的 qt-embedded-wince-opensource-src-4.5.1.zip \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 文件夹的顶部,然后配置成功完成。

但随后 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.

configure 使用这种方法的事实对我来说意味着 qt-embedded-wince-opensource-src-4.5.1 版本缺少内容。

任何关于下一步要尝试什么来编译它的建议都将非常受欢迎。

4

3 回答 3

1

您是否正确设置了环境变量?即,拥有一个带有相应 INCLUDE 和 LIB 定义的 .bat 通常会很好。如果您安装了 Qt,则安装了一个 Qt 命令外壳,它可以作为一个很好的模板,根据您要使用的 Qt 版本,为您提供具有正确环境变量的命令提示符。

于 2009-05-28T14:27:04.000 回答
0

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

于 2009-06-05T00:09:45.177 回答
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 的参数是什么。

于 2009-07-23T00:55:53.067 回答