Это показало, что моя настройка не завершена. Как я могу установить собственную версию в свой Ubuntu? Спасибо всем
Это ошибка, когда я компилирую с CmakeList.txt в исходный код
-- ===============================================================-- ============ Configuring CompileSettings =====================-- ===============================================================-- ============= Look for required libraries =====================-- Looking for Eigen Library with minimum version 3.2.90-- Looking for Eigen via User Provided (or Cached) location-- Eigen version 3.2.0 found in /usr/include/eigen3CMake Warning at cmake/FindEigen.cmake:62 (message): Eigen version is less than requred version 3.2.90Call Stack (most recent call first): cmake/FindEigen.cmake:73 (Eigen_Check_Version) CMakeLists.txt:23 (FIND_PACKAGE)CMake Error at /usr/local/share/cmake-3.5/Modules/FindPackageHandleStandardArgs.cmake:148 (message): Could NOT find Eigen (missing: EIGEN_VERSION_OK) (Required is at least version "3.2.90")Call Stack (most recent call first): /usr/local/share/cmake-3.5/Modules/FindPackageHandleStandardArgs.cmake:388 (_FPHSA_FAILURE_MESSAGE) cmake/FindEigen.cmake:74 (find_package_handle_standard_args) CMakeLists.txt:23 (FIND_PACKAGE)
Для тех, кому просто требуется достаточно свежая версия Статья 3 в Ubuntu и аналогичных дистрибутивах на базе Debian (...что является обычным случаем), установив существующий libeigen3-dev пакета достаточно: напр.,
sudo apt install libeigen3-dev
Ручная загрузка и установка Eigen 3, вероятно, является излишеством для большинства случаев использования.
Eigen c++ - это библиотека только для заголовков: вам не нужно ее устанавливать, вы просто загружаете ее, распаковываете и связываете с ней свой код.
Например, если ваш код находится в my_favorite_cpp_folder, ты делаешь:
cd my_favorite_cpp_folder
и, предполагая, что ваш компилятор является gcc и собственные заголовки находятся в /usr/local/include/eigen3/unsupported/ и имя вашего исходного файла my_favorite_cpp_source_file.cpp, вы компилируете и кодируете и связываете его с собственными заголовками, выполняя:
dpkg знает только о программном обеспечении, которое вы установили с помощью стандартных инструментов управления пакетами Ubuntu. Но это не то, как вы установили eigen.Вы установили из исходного кода, и как таковой dpkg он этого не знает. Выход из dpkg -p libeigen3-dev речь идет не об установленном вами eigen, а о другой версии eigen, установленной с помощью стандартных средств управления пакетами.
Основываясь на вашем выводе sudo make install, версия eigen, которую вы установили из исходного кода, готова к использованию, ее файлы доступны в /usr/local/include/eigen3/unsupported/Eigen/src.
После извлечения сжатой папки проверьте установочный файл. Я использовал второй вариант установки с помощью cmake. После чего папка "eigen3" с заголовочными файлами была создана в /usr/local/include/ папка.
В свой проект вы можете включить собственные заголовки, подобные этому:
#include <eigen3/Eigen/Dense>
Я забыл упомянуть об этом. Поскольку заголовочные файлы находятся в /usr/local/include/ папку, вам не нужно компилировать свои файлы исходного кода против них с помощью "g++ -I .... ."
Если вы не предпримете дополнительные шаги (например, не используете программу “checkinstall” вместо “make install”), система dpkg ничего не будет знать о программах, установленных таким образом из исходного кода.
Что заставляет вас думать, что это было неудачно? Что говорит pkg-config --modversion eigen3? Какую версию вы на самом деле получаете, когда пытаетесь создать материал?