1、解压:tar -xvf json-c-0.9.tar.gz 默认解压在当前目录
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目录
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/
6、如果在编译的过程中,出现以下错误
这个原因是因为libjson库链接了两个不存在的函数:rpl_realloc和rpl_malloc,打开json原文件的config.h文件,把对应的malloc,realloc对应的内容删除或者注释掉,
然后重新编译
make
make install
编译json的应用程序,查看可执行程序的属性是ARM版本的,说明编译成功。
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 执行可执行程序