ошибка компиляции с ld: __stack_chk_guard @@ GLIBC_2.17

Я собираю некоторые файлы на плате odroidC2 (armv8-64bit) под управлением Ubuntu 16.04.1, и я получил следующую ошибку:

odroid@odroid64:~/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 `__stack_chk_guard@@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 `__stack_chk_guard@@GLIBC_2.17'
/usr/bin/ld: final link failed: Bad value
collect2: error: ld returned 1 exit status

Как видите, опция -fPIC присутствует. Поэтому я не понимаю, почему компилятор предлагает «перекомпилировать с -fPIC». Любая идея?

0

Решение

Проблема не в pd-linux/release-single/main.opp (Кстати, может быть .cpp?), С которым вы компилируете -fPIC, но в libflext-pd_s.a архив, содержащий объект libflext_pd_s_la-flxlet.o который не скомпилирован с -fPIC, так что вам нужно правильно перекомпилировать библиотеку flext.

2

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]