关于如何连接库,这里只记录自己碰到的一些问题
编写Makefile
编译时 -c 生成.o 文件:后面要加-I (指明包含的头文件)
链接时 -o 生成可执行文件:-L(指明库的位置) -l(指明库的名字)
还有一个是在引用json库的问题:
lib文件下有两个文件夹 include和 lib文件夹
include 文件夹中有一个文件夹json,里面又包含着json的头文件
lib文件中放着libjson.a的静态库
编写makefile时 注意,编译时 引入头文件目录到include 就行
编写base_json.h文件时:引用json的文件 #include”json/json.h”
今天在做项目的时候,用make命令后出现了/usr/bin/ld: skipping incompatible……问题。
这个问题实质是链接库文件时,库文件版本与平台版本不对应的问题。
解决方法:objdump -p libmylib.a 看一下该库的版本是32为还是64位的,或是ARM版还是..等等。仔细分析一下。你就会恍然大雾。(我的碰到的问题是:编译器选择的是64版,但是xxx.a是32版,当然不兼容)
结论:这几天碰到的问题很多,这些坑都要自己一个一个踩过,才会有更好的收获。