Openssl数据安全传输平台010:jasoncpp 0.10.7的编译 - Windows-vs2022 / Ubuntu/ Centos8 -待完善测试代码

文章目录

  • 0. 代码仓库
  • 1 安装
    • 1.1 windows 下的安装
    • 1.2 Linux 下的安装
    • 1.2.1 相关环境配置问题
    • 1.2.2 准备安装
      • 1.2.2.1 安装scons
      • 1.2.2.2 安装jsoncpp
        • Ubuntu系统下
        • Centos8系统下
  • 2 编译 c++ 测试文件: json-test.cpp

0. 代码仓库

https://github.com/Chufeng-Jiang/OpenSSL_Secure_Data_Transmission_Platform/tree/main/Preparation

1 安装

1.1 windows 下的安装

  • 在windows下 将 jsoncpp-0.10.7.tar.gz解压缩

  • 进入到解压目录jsoncpp-0.10.7, 在进入到子目录makefiles\msvc2010

  • 使用vs打开项目文件jsoncpp.sln

  • 编译该项目, 生成库文件

    Openssl数据安全传输平台010:jasoncpp 0.10.7的编译 - Windows-vs2022 / Ubuntu/ Centos8 -待完善测试代码_第1张图片Openssl数据安全传输平台010:jasoncpp 0.10.7的编译 - Windows-vs2022 / Ubuntu/ Centos8 -待完善测试代码_第2张图片

Openssl数据安全传输平台010:jasoncpp 0.10.7的编译 - Windows-vs2022 / Ubuntu/ Centos8 -待完善测试代码_第3张图片

  • 生成的静态库存储目录jsoncpp-0.10.7\makefiles\msvc2010\Debug

  • 生成的静态库文件: lib_json.lib
    Openssl数据安全传输平台010:jasoncpp 0.10.7的编译 - Windows-vs2022 / Ubuntu/ Centos8 -待完善测试代码_第4张图片

  • 使用的准备工作:

    • 将静态库lib_json.lib拿出备用
    • 将库对应的头文件拿出, 头文件目录jsoncpp-0.10.7\include\json
  • vs编译过程中, 修改属性
    Openssl数据安全传输平台010:jasoncpp 0.10.7的编译 - Windows-vs2022 / Ubuntu/ Centos8 -待完善测试代码_第5张图片

1.2 Linux 下的安装

1.2.1 相关环境配置问题

要安装python2,参考以下文章…哎…我把centos下安装py2搞复杂了,浪费了一上午,竟然还打算自己去编译py2的源码,简直脑子进水…

Centos8: 安装python2, 并设置默认版本

  1. python与python3

/usr/bin/env: ‘python’: No such file or directory“:Linux中python口令无效,python3有效

  1. python2和python3 print语句的括号问题
    python2中的语句是不用加括号的,但是python3中的print需要加语句。这导致了使用python3配环境时候出现以下错误
    Openssl数据安全传输平台010:jasoncpp 0.10.7的编译 - Windows-vs2022 / Ubuntu/ Centos8 -待完善测试代码_第6张图片

1.2.2 准备安装

- `jsoncpp-0.10.7.tar.gz`
- `scons-3.0.5.zip`
  • 解压缩

    tar zxvf jsoncpp-0.10.7.tar.gz
    unzip scons-3.0.5.zip
    

1.2.2.1 安装scons

  • 安装scons -> 进入 scons-3.0.5.zip 的解压目录

     sudo python setup.py install 
    

    Openssl数据安全传输平台010:jasoncpp 0.10.7的编译 - Windows-vs2022 / Ubuntu/ Centos8 -待完善测试代码_第7张图片

1.2.2.2 安装jsoncpp

  • 安装 jsoncpp -> 进入 jsoncpp-0.10.7.tar.gz 的解压目录
sudo scons platform=linux-gcc

Openssl数据安全传输平台010:jasoncpp 0.10.7的编译 - Windows-vs2022 / Ubuntu/ Centos8 -待完善测试代码_第8张图片

Ubuntu系统下
// 将生成的动态库/静态库拷贝到系统的库目录中, 需要管理员权限,Ubuntu系统下是gcc11/centos是gcc7
sudo cp libs/linux-gcc-11/* /lib

// 拷贝json的头文件到系统目录中, 需要管理员权限
sudo cp include/json/ /usr/include/ -r

// 创建动态库的链接文件, 需要管理员权限
sudo ln -s /lib/libjson_linux-gcc-11_libmt.so /lib/libjson.so

// 更新, 这样才能搜索到动态库 libjson.so。需要管理员权限
sudo ldconfig    

// 测试
sudo ./bin/linux-gcc-11/test_lib_json 


Testing ValueTest/checkNormalizeFloatingPointStr: OK
Testing ValueTest/memberCount: OK
Testing ValueTest/objects: OK
Testing ValueTest/arrays: OK
..................
Testing BuilderTest/settings: OK
Testing IteratorTest/distance: OK
Testing IteratorTest/names: OK
Testing IteratorTest/indexes: OK
All 53 tests passed

Openssl数据安全传输平台010:jasoncpp 0.10.7的编译 - Windows-vs2022 / Ubuntu/ Centos8 -待完善测试代码_第9张图片
Openssl数据安全传输平台010:jasoncpp 0.10.7的编译 - Windows-vs2022 / Ubuntu/ Centos8 -待完善测试代码_第10张图片

Centos8系统下
// 将生成的动态库/静态库拷贝到系统的库目录中, 需要管理员权限,centos是gcc7
sudo cp libs/linux-gcc-7/* /lib

// 拷贝json的头文件到系统目录中, 需要管理员权限
sudo cp include/json/ /usr/include/ -r

// 创建动态库的链接文件, 需要管理员权限
sudo ln -s /lib/libjson_linux-gcc-7_libmt.so /lib/libjson.so

// 更新, 这样才能搜索到动态库 libjson.so。需要管理员权限
sudo ldconfig    
// 测试
sudo ./bin/linux-gcc-7/test_lib_json 
Testing ValueTest/checkNormalizeFloatingPointStr: OK
Testing ValueTest/memberCount: OK
Testing ValueTest/objects: OK
Testing ValueTest/arrays: OK
..................
Testing BuilderTest/settings: OK
Testing IteratorTest/distance: OK
Testing IteratorTest/names: OK
Testing IteratorTest/indexes: OK
All 53 tests passed

Openssl数据安全传输平台010:jasoncpp 0.10.7的编译 - Windows-vs2022 / Ubuntu/ Centos8 -待完善测试代码_第11张图片

2 编译 c++ 测试文件: json-test.cpp

g++ json-test.cpp -ljson -o json

你可能感兴趣的:(数据安全传输基础设置平台项目,1024程序员节)