Linux中库的格式错误

时间:2019-01-25 12:49:13

标签: ubuntu gcc

以下是我的屏幕无法显示:

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 :(得分:0)

我找到了原因。我使用$(CXX)在.a中编译.o文件,该文件用于交叉编译,但是使用gcc编译了主程序的.o。难怪库不能链接到主程序。它们具有不同的目标环境设置。我在主程序的编译命令和链接命令中将gcc更改为$(CXX),它可以工作。