再说一下三方库移植,为什么要移植三方库呢,因为很多时候开发为了节省时间需要调用其他的库函数,但是很多库不像之前的cJSON和sqlite3等这种非常知名的库会提供deb,只提供源码,所以如果要在linux和arm上使用就需要用到三方库移植,三方库的移植步骤:
1.先在官网或者git获取该库的源码压缩包
2.解压并进入目录
3.创建一个空的install文件夹便于安装
4.配置编译选项,一般源码目录下有configure
--host:指定编译器 --prefix:指定安装目录
./configure --prefix=$PWD/work
如果是交叉编译,给ARM板用,配置选项如下
./configure --host=arm-linux- --prefix=$PWD/work
还有的库是使用cmake,比如MQTT
cmake -DCMAKE_INSTALL_PREFIX=/xxx/paho.mqtt.c-1.3.0/install(xxx代表你自己的路径)
5.配置完后会生成Makefile文件,然后make
6.make install 执行Makefile里的install部分
7.这时如果你想使用该库的代码并编译是会报错的,因为gcc命令需要加上路径
gcc main.c -o demo -I ./include(源码的include文件夹) -L ./lib/ -l xxx(注释1)
注释1: -l后的名称不能随便写,应该找到该库的so文件,去掉前面的lib和后面的so
8.再运行发现还是报错,这时因为系统默认查找路径 /lib或/usr/lib没有刚才的so文件
所以应该将so文件软连接复制到默认路径中,复制加-d 保持软连接复制
cp libxxx.so* /lib -d
9.再运行就可以了