回答編集履歴

2

d

2019/10/11 14:10

投稿

tiitoi
tiitoi

スコア21956

test CHANGED
File without changes

1

d

2019/10/11 14:10

投稿

tiitoi
tiitoi

スコア21956

test CHANGED
@@ -19,3 +19,39 @@
19
19
  パスは Eigen をダウンロードして解凍したらでてくるフォルダを指定してだくさい。(doc, Eigen, failtest, ... などがあるディレクトリ)
20
20
 
21
21
  Windows のパスの円マークは \ でエスケープする必要があります。
22
+
23
+
24
+
25
+ ----
26
+
27
+
28
+
29
+ ## 原因について
30
+
31
+
32
+
33
+ インクルードディレクトリ:
34
+
35
+ ヘッダーファイルをインクルードしたときに探すディレクトリ
36
+
37
+ 例えば、#include <Eigen/Core> としたときに Eigen ライブラリの場所がインクルードディレクトリに登録されていれば、
38
+
39
+ コンパイラがそこを基準に Eigen/Core というファイルを見つけてくれます。
40
+
41
+
42
+
43
+ 今回、#include <Eigen/Core> でビルドエラーになっていますが、Eigen ライブラリの場所がインクルードディレクトリに登録されていないのが原因です。
44
+
45
+
46
+
47
+ この作業は CMake 内で行うようになってますが、CMake の find_package(Eigen3) が失敗しているため、結果的にコンパイルエラーにつながっていると思われます。
48
+
49
+
50
+
51
+ 環境変数等がちゃんと設定してあれば、find_package(Eigen3) で Eigen ライブラリの場所を自動的に見つけられるはずなので、Eigen ライブラリをダウンロードしたあとの環境変数が正しく登録できていないのだと思います。
52
+
53
+
54
+
55
+ なので、代替案として include_directories() で Eigen の場所を直接指定する解決方法について回答で提示しました。
56
+
57
+ find_package(Eigen3) は依然として失敗しているので画像のような warning は出ますが、include_directories で直接追加したなら大丈夫です。