百度上搜索“windows 编译 jsoncpp”都是针对jsoncpp 0.y.z版本的(大多是0.5.0或者0.10.x)为主,对1.y.z的几乎没有。而刚好我涉及到的应用(百度AI的c++API必须要求1.6.2以上)。摸索后总结如下。

  1. 下载jsoncpp源码
    GitHub下载:https://github.com/open-source-parsers/jsoncpp
    或者点击 这里 下载
    下载完成后解压。

  2. 0.y.z版本源码目录中有现成的vs项目,而1.y.z并没有,所以无法直接编译。

  3. 尝试借助cmake工具生成vs项目文件。因为使用到了c++11的新特性,所以建议下载最近的cmake。
    官网地址:https://cmake.org/download/
    我下载的是最新稳定版:cmake-3.14.5-win64-x64.zip
    解压。

  4. 进入jsoncpp-master目录,创建子目录

mkdir -p build\debug
cd build\debug
  1. 使用cmake产生工程项目文件
cmake -DCMAKE_BUILD_TYPE=release -DBUILD_STATIC_LIBS=OFF -DBUILD_SHARED_LIBS=ON  -DCMAKE_INSTALL_INCLUDEDIR=include         -DARCHIVE_INSTALL_DIR=.

如果提示错误

CMake Error at src/lib_json/CMakeLists.txt:89 (target_compile_features):
target_compile_features specified unknown feature “cxx_std_11” for target
“jsoncpp_lib”.
– Could NOT find PythonInterp (missing: PYTHON_EXECUTABLE) (Required is at least version “2.6”)
– Configuring incomplete, errors occurred!

那么就是因为当前版本的cmake太旧,需要按照步骤3重新下载更新版本。
正确的提示应该是:

D:\jsoncpp-master\build\debug>D:\ProgramUtils\cmake-3.14.5-win64-x64\bin\cmake.exe -DCMAKE_BUILD_TYPE=release -DBUILD_STAT
IC_LIBS=OFF -DBUILD_SHARED_LIBS=ON  -DCMAKE_INSTALL_INCLUDEDIR=include         -DARCHIVE_INSTALL_DIR=. ../..
-- The CXX compiler identification is MSVC 18.0.21005.1
-- Check for working CXX compiler: D:/ProgramIDE/Microsoft Visual Studio 12.0/VC/bin/cl.exe
-- Check for working CXX compiler: D:/ProgramIDE/Microsoft Visual Studio 12.0/VC/bin/cl.exe -- works
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - done
-- Detecting CXX compile features
-- Detecting CXX compile features - done
-- JsonCpp Version: 1.9.0
-- Could NOT find PythonInterp (missing: PYTHON_EXECUTABLE) (Required is at least version "2.6")
-- Configuring done
-- Generating done
-- Build files have been written to: D:/jsoncpp-master/build/debug
  1. 打开vs项目文件
    D:\jsoncpp-master\build\debug目录下生成了JSONCPP.sln
    D:\jsoncpp-master\build\debug\src\lib_json目录下生成了jsoncpp_lib.vcxproj
    以及其他一些项目文件

双击使用Visual Studio打开JSONCPP.sln,就可以进行编译了。

windows下编译jsoncpp 1.y.z相关推荐

  1. 记录 Windows 下编译一个开源 SM9 签名验签 C 程序的过程

    注:本文不讨论算法具体实现细节,只介绍如何编译一个现有的程序实现. 在商用密码检测中心( 链接:http://www.scctc.org.cn/index.aspx )的网站上,"下载中心& ...

  2. Windows下编译TensorFlow1.3 C++ library及创建一个简单的TensorFlow C++程序

    参考:https://www.cnblogs.com/jliangqiu2016/p/7642471.html Windows下编译TensorFlow1.3 C++ library及创建一个简单的T ...

  3. C++ Boost库:windows下编译Boost库

    文章目录 1. 需要编译的boost库 2. 编译步骤 3. 库命名规则 4. VS配置库目录 C++ Boost库:简介和第一个示例程序 C++ Boost库:数值转换 lexical_cast C ...

  4. Windows下编译Chrome V8

    主要还是参考google的官方文档: How to Download and Build V8 Building on Windows 同时也参考了一些其它的中文博客: 脚本引擎小pk:SpiderM ...

  5. Windows下编译 Hadoop

    Windows下编译 Hadoop-2.9.2 系统环境 系统: Windows 10 10.0_x64 maven: Apache Maven 3.6.0 jdk: jdk_1.8.0_201 Pr ...

  6. Windows下编译tensorflow-gpu教程

    这两个也要看: https://zhuanlan.zhihu.com/p/29029860 https://zhuanlan.zhihu.com/p/34942873 Windows下编译tensor ...

  7. windows下编译支持https的curl

    先编译好openssl,过程详见:<windows下编译openssl> 编译好zlib,过程详见<windows下编译zlib> 1. 下载curl 官网:https://c ...

  8. 在Windows下编译FFmpeg详细说明

    在Windows下编译FFmpeg详细说明 MinGW:一个可自由使用和自由发布的Windows特定头文件和使用GNC工具集导入库的集合,允许你生成本地的Windows程序而不需要第三方C运行时 Mi ...

  9. linux下find查找带有指定权限的文件(windows下编译的源代码文件)

    find -type f -perm -o=x 查找用户在windows下编译的源代码文件 转载于:https://blog.51cto.com/axlrose/1357610

最新文章

  1. 亚马逊首席科学家李沐「实训营」国内独家直播,马上报名 !
  2. Spring data jpa命名规范
  3. 参数(parameter)和属性(attribute)的区别
  4. Spring Security Architecture--官方
  5. 基于事件驱动架构构建微服务第5部分:容器化(Web Api Core 和 SQL Server Linux)
  6. Java程序和MySQL数据库中关于小数的保存问题
  7. 在gitLab上新建仓库push时SSHkey的问题
  8. Syntax Error: Unexpected token 报错原因
  9. 【干货】Graph Embedding及其在知乎的实践.pdf(附下载链接)
  10. ati 缺少关键性文件_ATI显卡优化
  11. h3c交换机端口加入vlan命令_h3c交换机vlan配置划分命令
  12. caxa发生文件读写异常_常见socket读写异常及错误
  13. CA、公钥、私钥的基本概念
  14. python提取图片中的文字自动填表_python写一个自动识别图片提取文字
  15. android 彩信发送,在部分手机上报错,提示activityNotFoundError。
  16. 计算机科学学院凤凰院徽,数学科学学院院徽、院训展示
  17. Type-C强光手电快充方案
  18. cannot find -lxxx解决方法
  19. dbm数据库源代码分析(3):头文件部分
  20. leetcode-Database-577|员工奖金

热门文章

  1. Config Sharepoint 2013 Workflow PowerShell Cmdlet
  2. solr学习之(七)_学习solr的理由(solr的特点和应用领域)
  3. 一些很特别的J2ME开源项目
  4. 积木式开发中Session的处理问题
  5. 微信小程序开发实战(三)自定义UI样式---增加减少按钮
  6. java 检查输入_在java中检查输入的问题
  7. jfinal js 拦截_jfinal 使用拦截器处理繁琐的前置条件判定
  8. 2019年1月29日
  9. 正则学习小结(1)-基础
  10. bzoj 5340: [Ctsc2018]假面