kann nicht verwendet werden, wenn ein gemeinsames Objekt; recompile with-fPIC

Habe ich versucht zu installieren, eine Bibliothek, aber ich habe folgende Fehlermeldung nach dem ausführen von make. Wie kompilieren mit dem flag?

machen Scanning dependencies of target pwrutils Linking CXX geteilt
Bibliothek libpwrutils.also /usr/bin/ld:
/usr/lib/gcc/x86_64-linux-gnu/4.8/../../../x86_64-linux-gnu/libboost_system.ein(error_code.o):
Umzug R_X86_64_32 gegen `.rodata.str1.1' kann nicht verwendet werden, wenn
machen ein gemeinsames Objekt; recompile with-fPIC
/usr/lib/gcc/x86_64-linux-gnu/4.8/../../../x86_64-linux-gnu/libboost_system.a:
Fehler beim hinzufügen des symbols: Bad value collect2: Fehler: ld zurückgegeben, 1 Ausgang
status make[2]: * [libpwrutils/libpwrutils.so.1.0] Fehler 1 make[1]:
*
[libpwrutils/CMakeFiles/pwrutils.dir/all] Fehler 2 make: *** [all] Fehler 2

  • Sind Sie mit CMake? Tun Sie, wie cmake . oder ähnlich und dann make oder Sie müssen nur ein Makefile und rufen Sie make ?
  • ja, ich bin mit Cmake. Ich habe versucht, zu löschen CMakeCache.txt und cmake erneut, aber es half nicht natürlich.
  • Sie versucht, den link gemeinsames - Bibliothek libpwrutils.so gegen static - Bibliothek libboost_system.a. Und das funktioniert nicht. Sie sollten entweder die Installation gemeinsamer Boost-library, oder bauen Sie Ihre Bibliothek (libpwrutils.so) als STATISCH. BTW, Fragen beschreibt ähnliches problem.
  • Mögliche Duplikate von Shared library auf Linux und -fPIC-Fehler
InformationsquelleAutor Kasia | 2017-01-07
Schreibe einen Kommentar