2017-03-01 85 views
3

在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上。

謝謝。

回答

1

這與構建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