Неправильный формат библиотеки в Linux - PullRequest
0 голосов
/ 25 января 2019

Ниже мой экран не работает:

gcc   bv3sdktest.o  libbv3sdk.a -o bv3sdktest
/usr/bin/ld: libbv3sdk.a(Bv3Sdk.o): Relocations in generic ELF (EM: 40)
/usr/bin/ld: libbv3sdk.a(Bv3Sdk.o): Relocations in generic ELF (EM: 40)
/usr/bin/ld: libbv3sdk.a(Bv3Sdk.o): Relocations in generic ELF (EM: 40)
/usr/bin/ld: libbv3sdk.a(Bv3Sdk.o): Relocations in generic ELF (EM: 40)
/usr/bin/ld: libbv3sdk.a(Bv3Sdk.o): Relocations in generic ELF (EM: 40)
/usr/bin/ld: libbv3sdk.a(Bv3Sdk.o): Relocations in generic ELF (EM: 40)

: error adding symbols: File in wrong format
: error: ld returned 1 exit status
make: *** [bv3sdktest] Error 1

Интересно, что с ним не так?

1 Ответ

0 голосов
/ 28 января 2019

Я нашел причину.Я скомпилировал .o файлы в .a, используя $ (CXX), который был для кросс-компиляции, но скомпилировал .o основной программы, используя gcc.Неудивительно, что библиотека не может быть связана с основной программой.У них разные настройки целевой среды.Я изменил gcc на $ (CXX) в команде компиляции основной программы и команды ссылки, она работает.

...