【发布时间】:2018-09-12 19:02:30
【问题描述】:
所以,我尝试从源代码构建 GCC 编译器 (8.1.0),但遇到了问题。我正在尝试在 Windows 7 上构建它,首先,我尝试构建 8.2.0 版本并遇到了我正在尝试构建的当前版本的确切问题(自 8.2.0 版本于 7 月 26 日发布以来,两个在发布这个问题前几周,它有一个问题:))。
我要做的第一件事是配置构建过程,如下:
configure --program-suffix=-8.1.0. --enable-languages=c --disable-bootstrap --disable-shared --prefix="C:\Users\Vuk\Desktop\Diplomski\gcc-8.1.0\objdir"
我之前按照官方guide的推荐做了一个objdir目录。我计划在其中存储构建的编译器。
在上一步之后我运行:
制作-j4
这会导致几分钟的编译和第一条错误消息:
../../intl/localealias.c: In function ‘_nl_expand_alias’:
../../intl/localealias.c:164:25: error: incomplete universal character name \U
locale_alias_path = LOCALE_ALIAS_PATH;
^~~~~~~~~~~~~~~~~
../../intl/localealias.c:164:25: warning: unknown escape sequence: '\V'
../../intl/localealias.c:164:25: warning: unknown escape sequence: '\D'
../../intl/localealias.c:164:25: warning: unknown escape sequence: '\D'
../../intl/localealias.c:164:25: warning: unknown escape sequence: '\g'
../../intl/localealias.c:164:25: warning: unknown escape sequence: '\o'
make[2]: *** [Makefile:133: localealias.o] Error 1
最后,出现第二条错误消息以及我无法显示的巨大文字墙:
make[2]: Leaving directory '/cygdrive/c/Users/Vuk/Desktop/Diplomski/gcc-8.1.0/objdir/libiberty'
config.status: creating Makefile
config.status: creating backtrace-supported.h
config.status: creating config.h
config.status: executing libtool commands
config.status: executing gstdint.h commands
config.status: executing default commands
make[1]: Leaving directory '/cygdrive/c/Users/Vuk/Desktop/Diplomski/gcc-8.1.0/objdir'
make: *** [Makefile:889: all] Error 2
我不是从 Windows 命令行执行所有这些操作,而是使用 cygwin64。
【问题讨论】:
-
"C:\Users\Vuk\Desktop\Diplomski\gcc-8.1.0\objdir"以某种方式出现在源代码中(可能通过宏)并导致麻烦,因为\U、\V、\D、\g、\o不是有效的反斜杠字符串中的转义序列。 -
@melpomene 你是完全正确的。而且我觉得有趣的是我没有注意到 \U , \V ,...对应于我正在编译的路径...
标签: gcc cross-compiling