Ошибка компиляции с использованием библиотеки Eigen

Я пытаюсь использовать библиотеку шаблонов C++ Eigen для линейной алгебры, я скомпилировал и установил библиотеку по следующему пути /usr/local/include

Я взял пример кода с их сайта и попытался скомпилировать с опцией -l и без нее.

g++ -l /usr/local/include/eigen3 test.cpp -o mytest

но я получаю следующую ошибку:

test.cpp:2:23: fatal error: Eigen/Dense: No such file or directory

Как включить эту библиотеку?


person Kicsi Mano    schedule 18.11.2012    source источник
comment
Добавьте сюда код #include(s) и найдите файл, который хотите включить.   -  person Drakosha    schedule 19.11.2012
comment
Простая ошибка, веб-сайт говорит, что я (заглавная i), вы написали l (маленькая L).   -  person john    schedule 19.11.2012


Ответы (2)


Вы хотите использовать вариант -I, а не -l

g++ -I /usr/local/include/eigen3 test.cpp -o mytest
person Starkey    schedule 18.11.2012
comment
Вам не нужно связываться с библиотекой. Eigen — это библиотека только для заголовков. - person Lucas; 19.11.2012
comment
@Лукас Спасибо! Я этого не знал. Я изменю свой ответ. - person Starkey; 19.11.2012

Для пользователей MSVC: мой конкретный ответ на два цента:

Я только что столкнулся с трудной для идентификации ошибкой компиляции с Eigen. Это было вызвано процедурой, описанной здесь — Поиск утечек памяти с помощью библиотеки CRT, который состоит из переопределения оператора new для обнаружения утечек памяти с помощью следующего макроса:

#ifdef _DEBUG
    #define DBG_NEW new ( _NORMAL_BLOCK , __FILE__ , __LINE__ )
#else
    #define DBG_NEW new
#endif

Этот макрос не работает с Eigen.

Как только я удалил его, проблема была решена.

Я надеюсь, что это может помочь вам.

person Malick    schedule 14.02.2017