質問するログイン新規登録

回答編集履歴

2

d

2019/10/11 14:10

投稿

tiitoi
tiitoi

スコア21960

answer CHANGED
File without changes

1

d

2019/10/11 14:10

投稿

tiitoi
tiitoi

スコア21960

answer CHANGED
@@ -8,4 +8,22 @@
8
8
  ```
9
9
 
10
10
  パスは Eigen をダウンロードして解凍したらでてくるフォルダを指定してだくさい。(doc, Eigen, failtest, ... などがあるディレクトリ)
11
- Windows のパスの円マークは \ でエスケープする必要があります。
11
+ Windows のパスの円マークは \ でエスケープする必要があります。
12
+
13
+ ----
14
+
15
+ ## 原因について
16
+
17
+ インクルードディレクトリ:
18
+ ヘッダーファイルをインクルードしたときに探すディレクトリ
19
+ 例えば、#include <Eigen/Core> としたときに Eigen ライブラリの場所がインクルードディレクトリに登録されていれば、
20
+ コンパイラがそこを基準に Eigen/Core というファイルを見つけてくれます。
21
+
22
+ 今回、#include <Eigen/Core> でビルドエラーになっていますが、Eigen ライブラリの場所がインクルードディレクトリに登録されていないのが原因です。
23
+
24
+ この作業は CMake 内で行うようになってますが、CMake の find_package(Eigen3) が失敗しているため、結果的にコンパイルエラーにつながっていると思われます。
25
+
26
+ 環境変数等がちゃんと設定してあれば、find_package(Eigen3) で Eigen ライブラリの場所を自動的に見つけられるはずなので、Eigen ライブラリをダウンロードしたあとの環境変数が正しく登録できていないのだと思います。
27
+
28
+ なので、代替案として include_directories() で Eigen の場所を直接指定する解決方法について回答で提示しました。
29
+ find_package(Eigen3) は依然として失敗しているので画像のような warning は出ますが、include_directories で直接追加したなら大丈夫です。