以下是我的屏幕无法显示:
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
我想知道这是怎么回事?
答案 0 :(得分:0)
我找到了原因。我使用$(CXX)在.a中编译.o文件,该文件用于交叉编译,但是使用gcc编译了主程序的.o。难怪库不能链接到主程序。它们具有不同的目标环境设置。我在主程序的编译命令和链接命令中将gcc更改为$(CXX),它可以工作。