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

标签 gcc cygwin windows-7-x64

在 Windows7-64 上 cygwin 下编译 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

什么是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

关于gcc - 使用cygwin在Windows 7-64上编译gcc-7-20170212,==> wopen错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42537454/

相关文章:

python - 如何在 Windows 64 上安装 NumPy?

c++ - 强制转换尾随返回类型会导致 SFINAE 失败

c - 我在这里删除堆栈吗?

c - 目标 'all' 的配方在 Ubuntu 15.10 64 位上失败

c++ - 使用 MinGW 64 安装 boost - (Cygwin)

cygwin - 在 cygwin g++ 中使用 GSL

asp.net-mvc-4 - 在IIS 7.5中注册.NET Framework 4.5

C++11,GCC 4.8.1,Code::Blocks,线程,好头疼

c - printf 不打印到屏幕

ruby - 无法在 Windows 7 64 上安装 gem