cmake编译jsonbox错误"TARGETS given no LIBRARY DESTINATION for shared library target"

交叉编译c++的json处理库jsonbox

对于json格式的数据大家应该最熟悉不过了,在写c++程序的时候遇到json数据的解析如果你是大神可以自己手撸一个解析库,大部分时候我选择第三方库,jsoncpp,jsonbox都是不错的选择,这里我选择jsonbox进行移植,需要注意的一点是jsonbox不支持long型数据解析,使用getInteger()会导致数据溢出,而高版本的jsoncpp可以用asLong()获取long型数据。

1.下载源码

https://github.com/anhero/JsonBox

2.交叉编译

先安装cmake:sudo apt-get install cmake-qt-gui
1)配置好源码和安装路径并设置好交叉编译器路径
cmake设置交叉编译器不会的同学看这里:https://blog.csdn.net/haohaohaihuai/article/details/103687671
cmake编译jsonbox错误
按照默认的cmake配置生成的.a静态库,这里需要生成动态库,修改CMakeLists.txt为add_library(JsonBox SHARED ${JSONBOX_SOURCES} ${JSONBOX_HEADERS})
编译以后出现错误==“TARGETS given no LIBRARY DESTINATION for shared library target”==
从字面意思看是没用指定共享库的目标路径,打开CMakeLists.txt发现有一项为install,添加LIBRARY DESTINATION "lib"到install项,保存。
cmake编译jsonbox错误

2)重新make,这回编译通过了

3.安装

make install
在指定的安装目录下成功生成了libJsonbox.so

作者:费码程序猿
欢迎技术交流:QQ:255895056
转载请注明出处

你可能感兴趣的:(交叉编译,c++,linux,cmake,json)