linux交叉编译ARM64的jsoncpp

概述
JSON 是一种轻量级数据交换格式。它可以表示数据、字符串、有序的值序列以及名称/值对的集合。

JsonCpp 是一个 C++ 库,允许操作 JSON 值,包括字符串之间的序列化和反序列化。它还可以在反序列化/序列化步骤中保留现有注释,使其成为存储用户输入文件的方便格式。

JsonCpp 目前在 github 上托管。

官方网址:https://github.com/open-source-parsers/jsoncpp

下载
开发版本 (最新)
如果以研究学习为目的,或者希望尝试最新特性,又或者希望参与到 JsonCpp 的开发中,可以直接从 github 上拉取最新源码,拉取命令:

git clone https://github.com/open-source-parsers/jsoncpp.git

技巧:在 github 页面点击右上角的 Code 按钮获取 git clone 链接。

发行版本
如果以商用量产为目的,一般选择正式的发行版本为佳。在 JsonCpp 的 Release 页面,源码以压缩包的形式提供,根据需求选择合适的版本进行下载,以最新的 1.9.5 为例,下载源码包 Source Code.

交叉编译
JsonCpp 使用了 CMake 编译系统,进行交叉编译前我们需要先创建一个 toolchain.cmake 文件:

# This is required. target system name
SET(CMAKE_SYSTEM_NAME Linux)
SET(CMAKE_SYSTEM_PROCESSOR arm)# specify the cross compiler
SET(TOOLCHAIN_PATH /work/sdk/nvidia/nvidia_6.0.1.0/toolchains/aarch64--glibc--stable-2020.08-1)
SET(CMAKE_SYSROOT ${TOOLCHAIN_PATH}/aarch64-buildroot-linux-gnu/sysroot)
SET(CMAKE_C_COMPILER   ${TOOLCHAIN_PATH}/bin/aarch64-linux-gcc)
SET(CMAKE_CXX_COMPILER ${TOOLCHAIN_PATH}/bin/aarch64-linux-g++)# search for programs in the build host directories
SET(CMAKE_FIND_ROOT_PATH_MODE_PROGRAM NEVER)# for libraries and headers in the target directories
SET(CMAKE_FIND_ROOT_PATH_MODE_LIBRARY ONLY)
SET(CMAKE_FIND_ROOT_PATH_MODE_INCLUDE ONLY)
SET(CMAKE_FIND_ROOT_PATH_MODE_PACKAGE ONLY)

设置 CMAKE_SYSTEM_NAME 为 Linux,指的是编译代码的系统是 Linux
设置 CMAKE_SYSTEM_PROCESSOR 为 arm,指的是运行的系统是在 arm 上面
定义 TOOLCHAIN_PATH 指向 /work/sdk/nvidia/nvidia_6.0.1.0/toolchains/aarch64--glibc--stable-2020.08-1,该变量供后面几个配置参数使用
定义 CMAKE_SYSROOT 指向 toolchain 的 sysroot 路径
定义 CMAKE_C_COMPILER 为 aarch64-linux-gcc
定义 CMAKE_CXX_COMPILER 为 aarch64-linux-g++
解压缩源码包,如果使用 git clone 拉回来的代码可以忽略这一步

* tar -xvf jsoncpp-1.9.5.tar.gz   此命令是下载.tar.gz使用的   而我用的是git clone  源代码

修改 CMakeLists.txt,将 JSONCPP_WITH_TESTS 配置成 OFF,不去编译测试工程:

option(JSONCPP_WITH_TESTS "Compile and (for jsoncpp_check) run JsonCpp test executables" ON)

修改为

option(JSONCPP_WITH_TESTS "Compile and (for jsoncpp_check) run JsonCpp test executables" OFF)


指定 toolchain.cmake 与生成目录的路径,就可以开始进行交叉编译了:
在jsoncpp  文件夹下mkdir output
mkdir build
cd build
cmake -DCMAKE_TOOLCHAIN_FILE=../toolchain.cmake -DCMAKE_INSTALL_PREFIX=../output ..
make
make install

交叉编译jsoncpp相关推荐

  1. 交叉编译 JsonCpp

    概述 JSON 是一种轻量级数据交换格式.它可以表示数据.字符串.有序的值序列以及名称/值对的集合. JsonCpp 是一个 C++ 库,允许操作 JSON 值,包括字符串之间的序列化和反序列化.它还 ...

  2. arm交叉编译jsoncpp

    下载 git git clone https://github.com/open-source-parsers/jsoncpp 进入目录 jsoncpp/src/lib_json 动态编译 arm-l ...

  3. 交叉编译 Crypto++

    交叉编译 Crypto++ 概述 Crypto++ 是一个免费开源的 C++ 密码学库,由 Wei Dai(美籍华裔)首次开发,当前由 Crypto++ 项目团队维护,源代码在 github 上进行托 ...

  4. JsonCpp 使用指导

    前言 JSON 是一种轻量级数据交换格式.它可以表示数据.字符串.有序的值序列以及名称/值对的集合. JsonCpp 是一个 C++ 库,允许操作 JSON 值,包括字符串之间的序列化和反序列化.它还 ...

  5. 【华为云技术分享】【玩转Atlas200DK系列】应用开发之 交叉编译第三方库并在工程中使用(jsoncpp)

    在本案中,我们以jsoncpp为例来介绍如何交叉编译第三方库,并在工程中是使用: 1. 从github上下载jsoncpp源码 wget https://github.com/open-source- ...

  6. jsoncpp的安装与使用实战(windows交叉编译Ubuntu)

    开发环境:Windows10 + VS2017 + wsl 目的:交叉编译Ubuntu系统中需要的库文件 操作步骤: 1.Windows10系统中安装wsl,我安装的是Ubuntu18.04 LTS. ...

  7. jsoncpp交叉编译配置

    $ mkdir arm_jsoncpp $ cp include/ arm_jsoncpp/ -r $ cp src/lib_json/* arm_jsoncpp/ $ cd arm_jsoncpp/ ...

  8. linux编译jsoncpp

    jsoncpp简介: jsoncpp是一个 C++ 库,用于实现json格式的序列化和反序列化,完成多个数据对象组织成为json格式字符串,以及将json格式字符串解析成得到多个数据对象的数据.它还可 ...

  9. 海思3518ev200学习记录(2) - 交叉编译官方webRTC

    系列文章目录 海思3518ev200学习记录(1)- 根据用户手册烧录系统镜像 海思3518ev200学习记录(2) - 交叉编译官方webRTC 海思3518ev200学习记录(3) - 编译 am ...

最新文章

  1. SLAM:现在,未来和鲁棒感知时代
  2. poj 1948(搜索+剪枝)
  3. NumPy (6)-结构化数据类型数组
  4. LeetCode 1196. 最多可以买到的苹果数量(贪心)
  5. Maven生命周期和插件的那些事(2021版)
  6. 解决方案 -SQL脚本建表产生ORA-00942错误
  7. 对JavaScript解析JSON格式数据的理解
  8. StackExchange.Redis学习笔记(三) 数据库及密码配置 GetServer函数
  9. CentOS7安装搜狗输入法
  10. 基于hilbert变换的数字信号_基于Hilbert变换处理绝对重力仪测量数据
  11. 流利阅读 2019.2.2 Barbie will soon be 60—and is still going strong
  12. 【极客时间】左耳听风
  13. 【STM32】HAL库-备份寄存器(BKP)
  14. spark history server内存不足服务自动挂掉
  15. idea的安装及基础设置
  16. python最强web框架fastapi,比肩go,nodejs
  17. php可以用百度云加速吗,百度云加速免费版CDN使用方法(图文)
  18. 加多宝二次创业五周年:解锁品牌持续增长密码
  19. 甲骨文业绩超预期股价大涨近11% 市值首超2000亿美元
  20. 子墨对酒《三国杀》里论模式(一)工厂模式

热门文章

  1. 英国最高法院裁定优步司机必须被视为工人
  2. 乐高大颗粒作品4:压水井的搭建
  3. JAVAEE开发------Linux上的web服务器配置(汤姆凯特)
  4. 【NOIP 2017 提高组】逛公园
  5. 耐克人脸识别_耐克的新鞋七八成没人买,他们为什么还要设计?
  6. 用菲教切入下沉市场,51TALK会成为在线教育的拼多多吗?
  7. yum 卸载 java,CentOS下安装JDK的四种方法和卸载JDK,centosjdk
  8. autojs之十二圆
  9. 如何解决Fn键失灵?
  10. 显示器切换服务器用什么键,电脑显示器切换器购买要注意什么 哪款电脑切换器好用...