当前位置: 代码迷 >> 综合 >> [c++ jsoncpp][基础篇-1]-windows下编译jsoncpp库
  详细解决方案

[c++ jsoncpp][基础篇-1]-windows下编译jsoncpp库

热度:61   发布时间:2023-11-02 07:05:32.0

[c++ jsoncpp][基础篇-1]-windows下编译jsoncpp库

    • 1.介绍
    • 2.源码下载
    • 3.使用MSVC + cmake-gui 编译(`MD`版本)
      • 3.1编译paddle所需`MT`版本
    • 4.使用gcc编译

1.介绍

2.源码下载

github地址
推荐 下载1.8.3版本 因为往后的版本存在一个小问题,对用户来说不太友好,详情见这个issues

3.使用MSVC + cmake-gui 编译(MD版本)

# 我的jsoncpp放在了lib目录下
cd work/lib/jsoncpp-1.8.3
# 启动 cmake-gui
cmake-gui
  • 输入源码路径,和构建路径,然后点击Configure进行配置
  • 在弹窗里选择Visual Studio 14 2015x64 (我用的是vs2015)
  • 只保留BUILD_STATIC_LIBS的勾选即可
  • 设置安装目录, 搜索CMAKE_INSTALL_PREFIX填写E:/work/lib/jsoncpp-1.8.3/2015_install (这是我的安装目录)
  • 最后再次点击Configure,再点击Generate,项目文件生成完成后,点击Open Project,然后熟悉的vs就出来了
  • 在vs里选择Releasex64编译和安装就行

注:
md表示动态链接,详情请看

3.1编译paddle所需MT版本

打开jsoncpp-1.8.3源码目录下的jsoncpp-1.8.3/CMakeLists.txt在第6行添加如下代码

CMAKE_MINIMUM_REQUIRED(VERSION 3.1)
PROJECT(jsoncpp)
ENABLE_TESTING()# 添加下面这行即可
add_compile_options(/MT)OPTION(JSONCPP_WITH_TESTS "Compile and (for jsoncpp_check) run JsonCpp test executables" ON)
OPTION(JSONCPP_WITH_POST_BUILD_UNITTEST "Automatically run unit-tests as a post build step" ON)

因为jsoncpp默认是编译MD版本的,在配合paddle使用时,需要更改为MT版本才能正确链接,接下来正常操作即可

# 我的jsoncpp放在了lib目录下
cd work/lib/jsoncpp-1.8.3
# 启动 cmake-gui
cmake-gui
  • 输入源码路径E:\work\lib\jsoncpp-1.8.3,和构建路径E:\work\lib\jsoncpp-1.8.3\mt_build,然后点击Configure进行配置 (我电脑上的路径)
  • 在弹窗里选择Visual Studio 14 2015x64 (我用的是vs2015)
  • 只保留BUILD_STATIC_LIBS的勾选即可
  • 设置安装目录, 搜索CMAKE_INSTALL_PREFIX填写E:/work/lib/jsoncpp-1.8.3/2015_install_mt (这是我的安装目录)
  • 最后再次点击Configure,再点击Generate,项目文件生成完成后,点击Open Project,然后熟悉的vs就出来了
  • 在vs里选择Releasex64编译和安装就行,
  • jsoncpp-1.8.3\2015_install_mt\lib目录下出现如下文件即可
    • jsoncpp.lib >> 5481KB (不同vs大小不一样)

注:
mt表示静态链接,详情请看

4.使用gcc编译

待续…

  相关解决方案