I'm trying to use the Eigen 3.3.5 library with mex using Matlab2018a and OS X 10.13.6 and gcc 4.2.1. I installed it into /usr/local/lib using cmake and also put a symbolic link to it in /usr/local/include. I named the directory eigen. The terminal command gcc -xc -E -v - indicates that /usr/local/include is on the include path for gcc. Nonetheless, the command mex ep_bootdat.c (which has #include <Eigen>) results in "error: 'Eigen' file not found" I've also tried #include <eigen/Eigen> and #include <eigen>. I've also tried mex -I/usr/local/include/eigen/ ep_bootdat.c. Nothing seems to help. Can anyone suggest what might be going wrong?

 採用された回答

Joseph
Joseph 2018 年 8 月 12 日
編集済み: Walter Roberson 2018 年 8 月 12 日

0 投票

okay, after much mucking around, I found the solution, which was #include <Eigen/Dense> in the .c file and mex ep_bootdat.c -I/usr/local/include/eigen3/ as the Matlab invocation. eigen3 was placed in /usr/local/include by the "make install" command that one is supposed to do after the cmake command, according to the eigen INSTALL documenation.

その他の回答 (1 件)

Joseph
Joseph 2018 年 8 月 12 日
編集済み: Walter Roberson 2018 年 8 月 12 日

1 投票

footnote - apparently it needs to be C++ (as in ep_bootdat.cc -I/usr/local/include/eigen3/) otherwise it errors out with a:
/usr/local/include/eigen3/Eigen/Core:82:12: fatal error: 'new' file not found
#include <new>

カテゴリ

ヘルプ センター および File ExchangeIntroduction to Installation and Licensing についてさらに検索

製品

リリース

R2018a

質問済み:

2018 年 8 月 12 日

編集済み:

2018 年 8 月 12 日

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by