2016-08-12 2 views
0

ich einige Dateien auf dem odroidC2 Board Kompilieren (armv8-64bit) Ubuntu 16.04.1 ausgeführt wird, und ich bekam die folgende Fehlermeldung:Fehler in Zusammenstellung mit ld: __stack_chk_guard @@ GLIBC_2.17

[email protected]:~/flext-master/tutorial/simple1$ g++ -fPIC -L/usr/lib -pthread -shared -Wl,-S -L/usr/local/src/pd/bin -L/usr/local/lib -o pd-linux/release-single/simple1.pd_linux pd-linux/release-single/main.opp -lflext-pd_s 
/usr/bin/ld: /usr/local/lib/libflext-pd_s.a(libflext_pd_s_la-flxlet.o): relocation R_AARCH64_ADR_PREL_PG_HI21 against external symbol `[email protected]@GLIBC_2.17' can not be used when making a shared object; recompile with -fPIC 
/usr/bin/ld: /usr/local/lib/libflext-pd_s.a(libflext_pd_s_la-flxlet.o)(.text+0x344): unresolvable R_AARCH64_ADR_PREL_PG_HI21 relocation against symbol `[email protected]@GLIBC_2.17' 
/usr/bin/ld: final link failed: Bad value 
collect2: error: ld returned 1 exit status 

Wie Sie können sehen, dass die Option -fPIC vorhanden ist. Also verstehe ich nicht, warum der Compiler vorschlägt, mit "fPIC" neu zu kompilieren. Irgendeine Idee?

Antwort

1

Das Problem ist nicht in dem pd-linux/release-single/main.opp (BTW, vielleicht .cpp?), Die Sie mit -fPIC kompilieren, aber im libflext-pd_s.a Archiv, das libflext_pd_s_la-flxlet.o ein Objekt enthält, die nicht mit -fPIC kompiliert wird, so dass Sie Flext neu kompiliert werden müssen Bibliothek richtig.

+0

Sie sind so richtig, danke –

Verwandte Themen