在Windows 7-64上使用cygwin编译gcc-7-20170212,==> wopen错误
问题描述:
在cygwin下编译Windows7-64上的gcc时出现以下错误。在Windows 7-64上使用cygwin编译gcc-7-20170212,==> wopen错误
./../zlib/libz.a(libz_a-gzlib.o):gzlib.c:(.text+0x646): undefined reference to `_wopen'
./../zlib/libz.a(libz_a-gzlib.o):gzlib.c:(.text+0x646): relocation truncated to fit: R_X86_64_PC32 against undefined symbol `_wopen'
collect2: error: ld returned 1 exit status
make[3]: *** [../.././gcc/fortran/Make-lang.in:97: f951.exe] Error 1
wopen是什么?
这不会发生在gcc-6或gcc-5上。
谢谢。
答
这与构建gcc非常相似,就像构建zlib一样,其中gcc包含了一个有售价的副本。
如果您在Cygwin中安装了zlib-devel
软件包,则可能不需要构建自动化的zlib。您可能还需要调整一些标志gcc的./configure
,但诚然,我没有仔细看。
也就是说,建立在Cygwin的zlib的需要以下补丁:https://github.com/Alexpux/MSYS2-packages/raw/master/zlib/1.2.11-cygwin-no-widechar.patch
https://github.com/Alexpux/MSYS2-packages/blob/master/zlib/1.2.7-zlib-symbols.patch
(尽管后者不干净的应用到1.2.11)。这是因为试图使gzopen_w
的在Cygwin上工作并不完全正确,因为Cygwin没有_wopen
。