编译RTTR 0.9.6 (CMake + vs2019)解决std::iterator对rapidjson编译事项

使用CMake和VS2019 x64编译RTTR 0.9.6指南

本文将指导您完成从下载RTTR 0.9.6到使用CMake生成Visual Studio 2019 x64项目的全过程,包括解决在编译过程中遇到的与rapidjson相关的警告变为错误的问题。

一、下载RTTR 0.9.6并配置CMake

首先,访问RTTR官方GitHub仓库,找到版本0.9.6的源码进行下载或克隆到本地。下载完成后,准备通过CMake来生成项目文件。

打开CMake GUI,设置源代码路径(Source code)为RTTR源码所在目录,并指定一个构建目录(Build the binaries)。接下来,点击“Configure”,选择Visual Studio 2019作为生成器,并确保选择了x64平台。

重要的是,在配置时需要正确设置install路径。可以在CMake配置窗口中找到相应的变量,比如CMAKE_INSTALL_PREFIX,将其设置为您希望安装RTTR的目标目录。

确认所有设置后,再次点击“Configure”按钮,然后点击“Generate”以生成VS2019项目文件。

二、在VS2019上编译RTTR 0.9.6

打开由CMake生成的解决方案文件(.sln),首先应当编译ALL_BUILD项目以确保所有组件均被正确编译。然而,在编译过程中可能会遇到如下问题:

解决rapidjson与C++17兼容性问题

由于rapidjson库中的某些部分使用了已弃用的std::iterator,这在C++17标准下会导致警告变成错误。要解决这个问题,我们可以通过定义宏_SILENCE_CXX17_ITERATOR_BASE_CLASS_DEPRECATION_WARNING来抑制这些特定的警告。

具体操作是在包含rapidjson的项目属性中添加预处理器定义。对于RTTR中的json_example项目,请按以下步骤操作:

  1. 在解决方案资源管理器中右键点击json_example项目,选择“属性”。
  2. 转到C/C++ -> 预处理器选项卡。
  3. 在“预处理器定义”字段中添加_SILENCE_CXX17_ITERATOR_BASE_CLASS_DEPRECATION_WARNING

完成上述设置后,重新编译整个解决方案。

三、安装RTTR

ALL_BUILD成功编译完毕后,接着选择INSTALL项目并构建它。这一步会将RTTR及其相关文件按照之前配置的CMAKE_INSTALL_PREFIX路径安装到位。

四、最简单的还是用vcpkg

vcpkg install rttr
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值