2016-12-06 276 views
0

當運行我這個CGAL程序包括例如:CGAL錯誤:Eigen3需要 - >徵似乎是好的,雖然

#include <CGAL/Epick_d.h> 

我得到的讀兩個錯誤消息:

C1189 #error: Eigen3 is required 

#error directive: Requires Eigen 

它們分別指向cartesian_la_base.h和constructors.h。 在那裏,我發現下面的代碼:

#ifndef CGAL_EIGEN3_ENABLED 
#error Requires Eigen 
#endif 

所以,在我看來,該CGAL_EIGEN3_ENABLED標誌未設置。雖然我無法找到CGAL或Eigen的問題,但我爲此感到有些困惑。 我爲.../Eigen設置了一個環境變量,並將其包含在屬性 - > c/C++ - >常規 - >其他包含目錄以及鏈接器 - >常規中的 下。

奇怪的是,似乎沒有人會收到相同的錯誤信息,從我用Google搜索這個問題的成功來判斷。

我使用Visual Studio 2015.

希望這是足夠的信息。 乾杯

+0

您的計算機上是否有Eigen副本?在解決方案目錄中?別的地方?如果是這樣,在哪裏(完整的編輯路徑)?你有什麼相關的額外包含目錄? –

+0

你或cmake沒有定義'CGAL_EIGEN3_ENABLED'?如果(EIGEN3_FOUND) 包含($ {EIGEN3_USE_FILE}) endif()'(對於註釋中缺少換行符感到抱歉),您的cmake文件是否包含以下行:'find_package(Eigen3 3.1.0) ? –

+0

只需定義'CGAL_EIGEN3_ENABLED',你應該沒問題。當在cmake中包含Eigen的使用文件時,應該設置此標誌。 – sloriot

回答

0

在我的情況下,加上一行

#define CGAL_EIGEN3_ENABLED 

解決了這個問題。所以看來唯一的問題是國旗沒有正確設置。

+0

顯然我不能接受我自己的答案2天以上。對不起,發送垃圾郵件 –

+0

不要感到抱歉,這確實令人驚訝,並且在此處提供信息非常有用。注意,從CGAL-4.10開始,在支持'__has_include'的編譯器上,宏將被自動定義。 –

相關問題