2016-08-15 2 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