1

我在 Windows 7 64 位上使用 Cygwin。我下载了4.8.3。source 并按照此处的说明进行操作,将<qtdir>/binPATH 与我选择的编译器的路径一起放入。配置立即失败,

$ ./配置

创建 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 代表,见这里

4

2 回答 2

1

请查看受支持的平台,那里有关于受支持编译器的说明,可以为您提供有关问题的提示。

据我所知,在最近的 Windows 中你需要 MSVC,而我没有看到任何关于 cygwin 的信息。

于 2012-11-08T12:20:12.693 回答
0

您使用的确切配置行是什么?尝试这个:

./configure -I/cygdrive/c/Qt/4.8.3/include/

如果它还在抱怨找不到标头,那确实很奇怪。您可以尝试的另一个选择是:

INCLUDE_PATH=/cygdrive/c/Qt/4.8.3/include/ ./configure
于 2012-11-14T12:18:27.720 回答