在Windows 7-64上使用cygwin,==> wopen错误编译gcc-7-20170212

rih*_*342 7 gcc cygwin windows-7-x64

在cygwin下的Windows7-64上编译gcc时出现以下错误.

./../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
Run Code Online (Sandbox Code Playgroud)

什么是wopen?

gcc-6或gcc-5不会发生这种情况.

谢谢.

Igu*_*aut 5

与构建zcc一样,这与构建zlib一样不是问题,其中gcc包括供应商副本。

如果zlib-devel在Cygwin中安装了软件包,则可能不需要构建供应商的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