今天编译时候遇到的问题,cannot find -lapi_gpio,我查了查搜索路径,确认路径没有写错。再看前一条报错,关键词incompatible [不协调,不匹配],怀疑是不是编译哪里出错了。
先查看本应用程序的编译环境,输入file **.o 查看下文件属性,一般会携带编译器平台信息:
test.o: ELF 64-bit LSB relocatable, ARM aarch64, version 1 (SYSV), not stripped
很明显,ARM aarch64架构文件
在看看我要链接的库 :file xxx.o
api_gpio.o: ELF 64-bit LSB relocatable, x86-64, version 1 (SYSV), not stripped
哦,问题找到了,原来是用的编译器不同,导致结果不在同一框架下,自然难以融合。将链接的库按照ARM aarch64重新编译后,问题得到了解决。(a库的Makefile有点问题,所以编译时没找到我指定的交叉编译器,用了系统的gcc,所以。。。)