我正在尝试将rapidjson
库包含在我的VS社区2017项目中。
在创建新项目时,我尝试在以下位置添加/添加目录rapidjson-master\include\rapidjson
:
属性 - >配置属性 - > C / C ++ - >一般 - >其他包含目录。
属性 - >配置属性 - > VC ++目录 - >包括目录。
无论哪种方式,当我尝试包含rapidjson
相关文件时,VS告诉我它无法找到源文件。
所以,当我这样说时:
#include "rapidjson/document.h"
#include "rapidjson/writer.h"
#include "rapidjson/stringbuffer.h"
我收到以下错误:
错误(活动)E1696无法打开源文件" rapidjson / document.h"
错误(活动)E1696无法打开源文件" rapidjson / writer.h"
错误(活动)E1696无法打开源文件" rapidjson / stringbuffer.h"
VS信息:
Microsoft Visual Studio Community 2017
版本15.6.3
如果您知道在Visual Studio中使用rapidjson
的正确方法,请告诉我。
编辑:
rapidjson documentation建议我们"只需将include/rapidjson
文件夹复制到系统或项目的包含路径" 。
答案 0 :(得分:0)
看起来包含路径应该只是rapidjson-master\include
,但让我们从头开始。
克隆rapidjson存储库;在命令窗口中执行以下操作:
mkdir C:/ThirdParty
cd C:/ThirdParty
git clone https://github.com/Tencent/rapidjson.git
替换C:/ThirdParty
的便捷目录。
在Visual Studio中,打开解决方案,在解决方案资源管理器中,选择使用rapidjson的项目,然后使用主菜单PROJECT Properties功能,或右键单击项目并从选项菜单中选择“属性”。这将显示“属性”对话框。
在对话框左侧的列表中选择C / C ++ General。
现在在对话框的右侧,第一行应为“Additional Include Directories”。编辑该行,在列表末尾添加C:/ThirdParty/rapidjson/include
。
答案 1 :(得分:0)
花了一些时间试图弄清楚为什么它不包括外部库,我终于找到了我的解决方案。
当我添加additional include directories
的路径时,我是按照以下配置进行的:
配置:调试
平台:x64。
但是,在我的VS2017中,每次创建新项目时,为编译/运行设置的默认配置如下:
配置:调试
平台:x86
我的问题背后的主要原因是配置项目和编译项目之间的平台不匹配。所以,我想在这种情况下检查平台和配置是否相同总是更好。
其他信息:(关于此问题的评论和其他答案)
如果包含的目录是rapidjson-master\include\rapidjson
或rapidjson-master\include\
,则无关紧要。在前者中,我们将文件包含为#include "document.h"
,后者则为#include "rapidjson/document.h"
。
答案 2 :(得分:0)
对于那些仍然存在此问题的人,经过一段时间的调试,我意识到发生错误的原因是因为在远程项目目录中找不到该文件-即使该文件存在并且已正确包含在您的文件中本地Windows项目。
为了使远程项目能够使用第三方标头正确编译,必须将其从Windows目录中复制过来。
我解决了这样的问题:
然后,我将#include语句的编写方式从#include "rapidjson\document.h"
更改为"rapidjson/document.h"
(即使用Linux文件路径语法)。
最后,我重建了项目。它成功地将头文件复制到了远程项目中,我的源文件现在可以“查找”它们了。