2017-04-25 151 views
1

以下問題:Cygwin或Visual Studio出錯。cygwin:找不到頭文件

CGAL/Splitters.h: No such file or directory 

每個標題都會出現此錯誤!頭是由代碼實現

#include <CGAL/Splitters.h> 

錯誤消失,如果我改變了代碼,這樣我寫全路徑:

#include <c:/path1/path2/CGAL/Splitters.h> 

但是,這是沒有辦法滿足我,因爲我將不得不改變數百個這樣的代碼分數。 我認爲這應該是Visual Studio或Cygwin的問題。在cygwin中我寫了這個命令:

$ g++ -std=c++11 example.cpp -o example 

這個錯誤的原因是什麼?我該如何解決它? 請給予容易理解的說明,因爲我是C++的初學者。

+0

什麼是您的visual studio版本? –

+0

Visual Studio 2017社區 –

回答

1

編譯器不知道去哪裏找,除非你告訴它, 因爲頭文件未在任何編譯器的默認 搜索目錄下的位於頭文件通過#include <CGAL/Splitters.h>提到的頭文件 。

你告訴編譯器通過傳遞一個-I選項來看看:

$ g++ -I/path/to/cgal/headers -std=c++11 example.cpp -o example 

哪裏是頭文件將是:

/path/to/cgal/headers/CGAL/Splitters.h 

延伸閱讀:An Introduction to GCC - for the GNU compilers gcc and g++

後來

因此,對於每個頭文件,我必須寫-I選項?當然

本身-I/path/to/cgal/headers/號會告訴編譯器 在哪裏可以找到在你的程序中使用 CGAL頭文件。

+0

因此,對於每個頭文件,我必須寫-I選項?這是很多工作!沒有更簡單的方法嗎? –

+0

@DanielBernoulli:不,不是每個頭文件。也許對每個圖書館來說。更簡單的方法是將它們正確安裝到系統的默認包含路徑中。閱讀這個「CGAL」的文檔。 –

1

您可以檢查包括在Visual Studio中路徑:

工具>選項>項目和解決方案> VC++目錄>包含文件

所以,檢查缺省頭文件路徑。

我希望這可以幫助你。