[英]Unable to include rapidjson library in VS2017
我正在嘗試將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信息:
微軟 Visual Studio 社區 2017
版本 15.6.3
如果您知道在 Visual Studio 中使用rapidjson
的正確方法,請告訴我。
編輯 :
Rapidjson 文檔建議我們“只需將include/rapidjson
文件夾復制到系統或項目的包含路徑” 。
看起來包含路徑應該只是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 功能,或右鍵單擊該項目並從選項菜單中選擇 Properties。 這將顯示“屬性”對話框。
在對話框左側的列表中選擇 C/C++ General。
現在在對話框的右側,第一行應該是“Additional Include Directories”。 編輯該行,在列表末尾添加C:/ThirdParty/rapidjson/include
。
在花了一些時間試圖弄清楚為什么它不包括外部庫之后,我終於找到了我的解決方案。
當我將路徑添加到我的additional include directories
,我是在以下配置下進行的:
配置:調試
平台:x64。
但是,在我的VS2017中,每次新建項目時,編譯/運行設置的默認配置如下:
配置:調試
平台:x86
我的問題背后的主要原因是配置項目和編譯項目之間的平台不匹配。 所以,我想在這種情況下檢查平台和配置是否相同總是更好。
附加信息:(關於這個問題的評論和其他答案)
包含的目錄是rapidjson-master\\include\\rapidjson
還是rapidjson-master\\include\\
。 在前者中,我們將文件包含為#include "document.h"
,在后者中將包含#include "rapidjson/document.h"
。
對於那些仍然有這個問題的人,經過一段時間的調試,我意識到發生錯誤的原因是在遠程項目目錄中找不到該文件 - 即使它存在並且正確包含在本地 Windows 項目中.
為了使用第 3 方頭文件正確編譯遠程項目,必須從您的 Windows 目錄中復制它們。
我解決了這樣的問題:
然后,我將#include 語句的編寫方式從#include "rapidjson\\document.h"
更改為"rapidjson/document.h"
(即使用Linux 文件路徑語法)。
最后,我重建了項目。 它成功地將頭文件復制到遠程項目,我的源文件現在可以“找到”它們。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.