我在 Windows 7 64 位上使用 Cygwin。我下载了4.8.3。source 并按照此处的说明进行操作,将<qtdir>/bin
PATH 与我选择的编译器的路径一起放入。配置立即失败,
$ ./配置
创建 qmake。请稍候... g++ -c -o makefile.o -pipe -DQMAKE_OPENSOURCE_EDITION -g -I。-Igenerators -Igenerators/unix -Igenerators/win32 -Igenerators/mac -Igenerators/symbian -Igenerators/integrity -I/cygdrive/c/Qt/4.8.3/include -I/cygdrive/c/Qt/4.8.3/include /QtCore -I/cygdrive/c/Qt/4.8.3/src/corelib/global -I/cygdrive/c/Qt/4.8.3/src/corelib/xml -I/cygdrive/c/Qt/4.8.3 /tools/shared -DQT_NO_PCRE -DQT_BUILD_QMAKE -DQT_BOOTSTRAPPED -DQLIBRARYINFO_EPOCROOT -DQT_NO_TEXTCODEC -DQT_NO_UNICODETABLES -DQT_NO_COMPONENT -DQT_NO_STL -DQT_NO_COMPRESS -I/cygdrive/c/Qt/4.8.3/mkspecs/cygwin-g++ -DHAVE_QCONFIG_CPP -DQT_NO_THREAD -DQT_NO_QOBJECT -DQT_NO_GEOM_VARIANT -DQT_NO_DEPRECATED生成器/makefile.cpp
在来自 ./option.h:45:0 的文件中,来自 generators/makefile.h:45,来自 generators/makefile.cpp:42: ./project.h:45:25:致命错误:qstringlist.h:否此类文件或目录编译终止。制作:*** [makefile.o] 错误 1
此处和此处的讨论确定问题出在 Perl 上;但是 Perl 在我的系统和路径上。为了确保我去下载/安装了 ActivePerl,然后我添加Perl64/bin
到路径中。结果相同。非常感谢一些帮助。
编辑,为了完整起见:
$ whereis perl
perl: /bin/perl.exe /usr/bin/perl.exe /usr/share/perl /cygdrive/c/Perl64/bin/perl.exe /cygdrive/c/Perl64/bin/perl516.dll
$ 回声 $PATH
/cygdrive/c/Perl64/bin:/cygdrive/c/gcc/bin:/bin: ... /cygdrive/c/Qt/4.8.3/bin
编辑:失败的行是:
#include <qstringlist.h>
如果我用绝对路径替换,这个特定的错误就会消失。(当然,随之而来的还有许多其他错误。)
$whereis qstringlist.h
qstringlist:/cygdrive/c/Qt/4.8.3/include/QtCore/qstringlist.h
它明确-I
包含在 g++ 命令和 FWIW 中
$echo $PATH ... /cygdrive/c/Qt/4.8.3/include/QtCore
编辑:添加-I/cygdrive/c/Qt/4.8.3/include/QtCore
作为显式选项./configure
什么都不做。说真的,这里发生了什么……
更新:这个问题现在实际上值得 250 代表,见这里。