Как установить переменную CMake для включения каталога

#cmake #include #command-line-arguments

#cmake #включить #аргументы командной строки

Вопрос:

При попытке собрать эту библиотеку с помощью Cmake из командной строки разработчика для VS я получаю эту ошибку

 CMake Error at cmake/FindEigen.cmake:77 (MESSAGE):
  Failed to find Eigen - Could not find eigen3 include directory, set
  EIGEN_INCLUDE_DIR to path to eigen3 include directory, e.g.
  /usr/local/include/eigen3.
  

Я хотел бы узнать, что было предназначено для меня здесь: я должен установить EIGEN_INCLUDE_DIR с помощью аргумента командной строки или путем редактирования файла make?

Я пробовал cmake -D EIGEN_INGLUDE_DIR=C:UsersaDownloadseigen-3.3.7eigen-3.3.7 . , но получил ту же ошибку.

Комментарии:

1. Вы уверены, что присвоенное вам значение EIGEN_INGLUDE_DIR на самом деле является включаемым каталогом собственного элемента? Например, у вас действительно есть файл C:UsersaDownloadseigen-3.3.7eigen-3.3.7EigenCore ?

2. Да, у меня есть этот файл. Так что это должно сработать? спасибо, я проведу расследование

Ответ №1:

cmake -D EIGEN_INGLUDE_DIR=C:UsersaDownloadseigen-3.3.7eigen-3.3.7 . сбой без создания каких-либо файлов ( cmake .. по крайней мере, начал сборку) и выдал мне эту ошибку

Ошибка CMake: источник «C:/Users/a/Downloads/RpolyPlusPlus-master/RpolyPlusPlus-master/build/CMakeLists.txt » не соответствует источнику «C:/Users/a/Downloads/RpolyPlusPlus-master/RpolyPlusPlus-master/CMakeLists.txt » используется для создания кэша. Повторно запустите cmake с другим исходным каталогом.

Итак, я просто добавил это в файл .cmake:

 # TODO: Add standard Windows search locations for Eigen.
LIST(APPEND EIGEN_CHECK_INCLUDE_DIRS
  /usr/local/include
  /usr/local/homebrew/include # Mac OS X
  /opt/local/var/macports/software # Mac OS X.
  /opt/local/include
  /usr/include
  C:\Users\a\Downloads\eigen-3.3.7)  <---------------------------------------