1、解压:tar -xvf json-c-0.9.tar.gz 默认解压在当前目录
![](https://img-blog.csdnimg.cn/f73787b672184192b004ea08f8070b66.png)
2、进入解压后的目录:$ cd cd json-c-0.9/
3、执行: sudo ./configure CC=aarch64-linux-gnu-gcc --host=arm-linux --prefix=/opt/json-c-0.9/
说明:CC赋值为嵌入式开发环境所使用的交叉编译工具,--host指定软件运行环境为arm-linux, --prefix指定源码交叉编译后生成文件的路径。
提前在/opt目录下建立json-c-0.9目录
![](https://img-blog.csdnimg.cn/334a099e144440da982c93f2d55e5292.png)
4、执行 sudo make && make install
5、编译含有json的程序 需要加上 -ljson 这个链接选项。-L指定库所在的目录-L/opt/json-c-0.9/lib/。如果json库放在默认的根目录,则可以省去-L选项
aarch64-linux-gnu-gcc test1.c -o test1 -ljson -L/opt/json-c-0.9/lib/
![](https://img-blog.csdnimg.cn/57ef6d4b8888437295c407053390aa1c.png)
6、如果在编译的过程中,出现以下错误
![](https://img-blog.csdnimg.cn/689ced08785f423bb400e43cb65e8395.png)
这个原因是因为libjson库链接了两个不存在的函数:rpl_realloc和rpl_malloc,打开json原文件的config.h文件,把对应的malloc,realloc对应的内容删除或者注释掉,
![](https://img-blog.csdnimg.cn/4a6b54a30d814fed873c1106dee7ad31.png)
![](https://img-blog.csdnimg.cn/de8085545e7a4a7c9dc6303e16e29fc9.png)
然后重新编译
make
make install
编译json的应用程序,查看可执行程序的属性是ARM版本的,说明编译成功。
![](https://img-blog.csdnimg.cn/2baec48a4dca4ce78456457373ce996c.png)
7、将在/opt/json-c-0.9/lib 目录下生成的 libjson.so libjson.so.0 libjson.so.0.0.1三个so文件拷贝的,嵌入式开发环境的/lib/目录 或者程序运行依赖的lib目录下即可。
scp root@10.10.180.81:/opt/json-c-0.9/lib/libjson.so* .
将生成的应用程序拷贝到嵌入式开发环境下就可以运行了 ./test1 执行可执行程序
![](https://img-blog.csdnimg.cn/a7acf6ef28b64277aa7c83b85df6baf1.png)
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)