我正在尝试使用 mingw 构建 GNU binutils 中包含的黄金链接器。我采取的步骤-
- 使用安装程序安装 mingw 和所有软件包。
- 使用 Windows 安装程序将 Windows 版本的 FLEX 安装到默认位置。
- 在 mingw shell 的黄金链接器目录中运行 ./configure 似乎工作正常
- 运行make,这是我遇到一些错误的地方。
我在此处将 ./configure 和 make 的完整输出包含在 pastebin 中:http: //pastebin.com/1XLkZVVm
但重要的部分是:
make[2]: Entering directory `c:/binutils-2.23.1/binutils-2.23.1/gold'
g++ -DHAVE_CONFIG_H -I. -I. -I./../include -I./../elfcpp -DLOCALEDIR="\"/usr/lo
cal/share/locale\"" -DBINDIR="\"/usr/local/bin\"" -DTOOLBINDIR="\"/usr/local//bi
n\"" -DTOOLLIBDIR="\"/usr/local//lib\"" -W -Wall -Wno-format -Werror -D_LAR
GEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -frandom-seed=expression.o -MT expression.
o -MD -MP -MF .deps/expression.Tpo -c -o expression.o expression.cc
In file included from expression.cc:33:0:
script-c.h:221:7: エラー: 'yylex' initialized and declared 'extern' [-Werror]
script-c.h:221:7: エラー: 'YYSTYPE' was not declared in this scope
script-c.h:221:15: エラー: expected primary-expression before ',' token
script-c.h:221:17: エラー: expected primary-expression before 'void'
script-c.h:221:30: エラー: expression list treated as compound expression in ini
tializer [-fpermissive]
cc1plus.exe: all warnings being treated as errors
make[2]: *** [expression.o] Error 1
make[2]: Leaving directory `c:/binutils-2.23.1/binutils-2.23.1/gold'
make[1]: *** [all-recursive] Error 1
make[1]: Leaving directory `c:/binutils-2.23.1/binutils-2.23.1/gold'
make: *** [all] Error 2
我查看了 script-ch 文件,它具有以下功能:
/* Called by the bison parser skeleton to return the next token. */
extern int
yylex(YYSTYPE*, void* closure);
但是 YYSTYPE 没有在我能找到的任何地方定义。
我是使用 mingw 和 msys 的新手,所以我可能在某处错过了一些步骤。任何帮助构建它都将不胜感激。