В том числе Эйген

Я включил заголовки Eigen в проект C++ в Eclipse. Когда я пытаюсь построить, я получаю эту ошибку:

Symbol 'Eigen' could not be resolved    Semantic Error

Насколько я понимаю, это ошибка компоновщика, но Eigen - это проект только для заголовка, и поэтому у него нет библиотеки для ссылки. Код, выдающий ошибку, соответствует основному руководству, которое они предоставляют, и оскорбительный фрагмент выглядит следующим образом:

#include <Eigen/Dense>

using namespace Eigen;

Что я делаю не так? Если это поможет, я запускаю это в Linux. Спасибо.


person ricksmt    schedule 27.11.2012    source источник
comment
Вы связали соответствующую библиотеку?   -  person Mel Nicholson    schedule 28.11.2012
comment
@MelNicholson: у Эйгена нет соответствующей библиотеки. Это только заголовок.   -  person greyfade    schedule 28.11.2012
comment
У меня нет ошибок Unresolved inclusion, поэтому, предположительно, я могу найти заголовки, но я просто не могу их использовать по какой-то причине.   -  person ricksmt    schedule 28.11.2012
comment
Во фрагменте #include <Eigen/Dense> не выдает ошибку.   -  person ricksmt    schedule 28.11.2012


Ответы (4)


Eigen обычно устанавливается большинством дистрибутивов в /usr/include/eigen2 и/или /usr/include/eigen3 или подобные. Проверьте, где были установлены заголовки, так как вам нужно добавить этот путь в качестве дополнительного пути включения в ваш проект.

person greyfade    schedule 27.11.2012

Убедитесь, что компилятор получает правильный путь включения. Например, заголовки библиотеки Eigen могут быть установлены в /usr/include/eigen3, поэтому при компиляции вам придется указать компилятору флаг -I /usr/include/eigen3.

person chill    schedule 27.11.2012

Я возился и обнаружил, что указание индексатору индексировать неиспользуемые заголовки решило мою проблему.

введите здесь описание изображения

Спасибо, что были в курсе, ребята. Немного жалею, что сам наткнулся.

person ricksmt    schedule 27.11.2012

Вы не должны помещать заголовки непосредственно в свой проект, это делает eclipse ужасно медленным, а иногда даже показывает предупреждения или даже (неправильные) ошибки. Вместо этого вы должны поместить библиотеку куда-нибудь на диск и связать с ней (установить соответствующий каталог include) через свойства проекта -> Общие c/c++ -> GNU C++ -> Добавить -> Файловая система -> Корневая папка Eigens (куда вы извлекли это к)

person yar    schedule 17.02.2017