Сначала попробуйте использовать полный путь к каталогу Eigen (без ~
).
set(EIGEN_DIR "/home/xxxx/Desktop/eigen-3.3.7")
include_directories(${EIGEN_DIR})
Кроме того, убедитесь, что путь действительно содержит Eigen/Dense
, поэтому полный путь к файлу будет:
/home/xxxx/Desktop/eigen-3.3.7/Eigen/Dense
Лучшим подходом было бы использовать CMake для проверьте , что путь существует перед его использованием:
set(EIGEN_DIR "/home/xxxx/Desktop/eigen-3.3.7")
if(NOT EXISTS ${EIGEN_DIR})
message(FATAL_ERROR "Please check that the set Eigen directory is valid!")
endif()
include_directories(${EIGEN_DIR})
Но вы можете быть еще более безопасным, проверив, что находитесь в правильном месте в репозитории Eigen, используя find_path()
. В хранилище Eigen есть фиктивный файл signature_of_eigen3_matrix_library
, который вы можете использовать для проверки того, что вы действительно нашли каталог верхнего уровня Eigen. Просто используйте предложение PATHS
, чтобы указать CMake, где искать:
find_path(EIGEN_DIR NAMES signature_of_eigen3_matrix_library
PATHS
/home/xxxx/Desktop/eigen-3.3.7
PATH_SUFFIXES eigen3 eigen
)
include_directories(${EIGEN_DIR})