Как включить поддержку pkg-config в eigen3 в Windows? - PullRequest
0 голосов
/ 02 декабря 2018

Я собираю стороннюю библиотеку, которая использует следующие команды для поиска Eigen3:

find_package( PkgConfig )
pkg_check_modules( EIGEN3 REQUIRED eigen3 )
include_directories(${EIGEN3_INCLUDE_DIRS})

Команда find_package( PkgConfig ) выполняется правильно, потому что я указал переменную PKG_CONFIG_EXECUTABLE.Но pkg_check_modules( EIGEN3 REQUIRED eigen3 ) возвращает ошибку:

- Проверка для модуля 'eigen3'

- Не найден пакет 'eigen3'

Eigen3's официальная веб-страница гласит: «Нет необходимости использовать CMake или устанавливать что-либо».Мне потребовалось много времени, чтобы понять, что это утверждение неверно.Поэтому я запустил следующее, чтобы скомпилировать и установить Eigen3 (версия 3.3.5):

cmake -DCMAKE_CONFIGURATION_TYPES=Release -DCMAKE_INSTALL_PREFIX=E:\3rd-parties\eigen-3.3.5\install_ -G"Visual Studio 14 2015 Win64" ..

Процесс компиляции и установки прошел успешно, потому что в VS2015 я не увидел ни одного сбоя.Но когда я возвращаюсь в папку сборки сторонней библиотеки и снова запускаю cmake, я получаю точно такую ​​же ошибку.Официальный сайт Eigen3 предоставляет только инструкцию, используя find_package, но не pkg-config.exe, поэтому я в следующий раз искал в Google и нашел эту тему .В ответе говорится, что нам нужно «включить поддержку pkg-config в eigen3 cmake».Я не знаю, как включить это.Есть ли какая-либо конкретная переменная CMake для этой цели?Так как это новая проблема, и на главной странице Эйгена написано: «Чтобы получить помощь, stackoverflow - ваш лучший ресурс».поэтому я пришел сюда за помощью.У меня вопрос: как включить поддержку pkg-config в eigen3?Или, другими словами: как передать команду pkg_check_modules( EIGEN3 REQUIRED eigen3 ) cmake?Большое спасибо.

PS: я работаю на Windows 10.

1 Ответ

0 голосов
/ 02 декабря 2018

Согласно источникам Eigen3 , опция EIGEN_BUILD_PKGCONFIG отвечает за поддержку pkg-config.

В Windows вся опция отключена, но вы можете попробовать установить ее:

cmake -DEIGEN_BUILD_PKGCONFIG=ON <... other arguments>

При использовании pkg-config для поиска Eigen3 в сценарии CMake убедитесь, что каталог установки Eigen3 указан в переменной CMAKE_PREFIX_PATH.(Если используемая проектом версия CMake меньше 3.1, вам необходимо дополнительно установить PKG_CONFIG_USE_CMAKE_PREFIX_PATH на ON, чтобы модуль pkgconfig подсказывал использовать переменную CMAKE_PREFIX_PATH. Подробнее см. В документации для pkgconfig модуля.)

...