本篇內容介紹了“編譯glibc遇到的錯誤 Error: invalid identifier for ".ifdef"怎么解決”的有關知識,在實際案例的操作過程中,不少人都會遇到這樣的困境,接下來就讓小編帶領大家學習一下如何處理這些情況吧!希望大家仔細閱讀,能夠學有所成!
由于CentOS6系統默認的glibc版本較低,在嘗試編譯升級時遇到了Error: invalid identifier for ".ifdef",在此記錄解決方案。
官網下載:ftp://ftp.gnu.org/gnu/glibc/
wget http://ftp.gnu.org/gnu/glibc/glibc-2.15.tar.gz wget http://ftp.gnu.org/gnu/glibc/glibc-ports-2.15.tar.gz tar -zxf glibc-2.15.tar.gz tar -zxf glibc-ports-2.15.tar.gz mv glibc-ports-2.15 glibc-2.15/ports mkdir glibc-build-2.15 cd glibc-build-2.15 ../glibc-2.15/configure --prefix=/usr --disable-profile --enable-add-ons --with-headers=/usr/include --with-binutils=/usr/bin make all && make install
sysdeps/i386/fpu/s_frexp.S:66: Error: invalid identifier for ".ifdef"
在glibc源碼目錄下找到文件 nptl/sysdeps/pthread/pt-initfini.c,約在46行左右:asm ("\n#include \"defs.h\"");
在其后增加代碼:
asm ("\n#if defined __i686 && defined __ASSEMBLER__"); asm ("\n#undef __i686"); asm ("\n#define __i686 __i686"); asm ("\n#endif");
在glibc源碼目錄下找到文件 sysdeps/unix/sysv/linux/i386/sysdep.h ,約在30行左右:#include <tls.h>
在其后增加代碼:
#if defined __i686 && defined __ASSEMBLER__ #undef __i686 #define __i686 __i686 #endif
make all && make install
ldd --version
如下則成功安裝
ldd (GNU libc) 2.15 Copyright (C) 2012 Free Software Foundation, Inc. This is free software; see the source for copying conditions. There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. Written by Roland McGrath and Ulrich Drepper.
“編譯glibc遇到的錯誤 Error: invalid identifier for ".ifdef"怎么解決”的內容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業相關的知識可以關注億速云網站,小編將為大家輸出更多高質量的實用文章!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。