2016-08-15 88 views
0

我不知道哪裏出了問題我的服務器上,它的運行CentOS的7,我最近想建一個圖書館,得到了錯誤:GCC總是試圖用靜態的libc庫,而不是共享

/usr/bin/ld: dynamic STT_GNU_IFUNC symbol `strcmp' with pointer equality in `/usr/lib/gcc/x86_64-redhat-linux/4.8.5/../../../../lib64/libc.a(strcmp.o)' can not be used when making an executable; recompile with -fPIE and relink with -pie 
collect2: error: ld returned 1 exit status 

首先,我認爲這是在庫中源代碼錯誤,但一些測試後,我創建了一個最小的工作C++程序:

#include <iostream> 
int main() { 
    std::cout<<"works!"; 
} 

我試圖建立其第一靜態...

gcc -static main.c 

作品。產生a.out,這是我所期待的,現在如果我型...

gcc main.c 

我得到同樣的錯誤如上,它試圖鏈接libc.a的,但我沒有指定靜態鏈接。

回答

0

我設法與解決它:

yum install glibc-devel.i686 glibc-i686