CMake: Как избежать несоответствия в системе HDF5 и установке conda? - PullRequest
0 голосов
/ 03 февраля 2019

У меня есть проект CMake, который ссылается на библиотеку hdf5.В моей системе у меня есть две версии hdf5: одна установлена ​​с менеджером пакетов системы, а другая установлена ​​с conda.Я хочу использовать версию conda для создания своего проекта.Для этого я использую CMake, чтобы найти библиотеку hdf5 с

    find_package(HDF5 COMPONENTS CXX)

. Это определяет переменную HDF5_INCLUDE_DIRS, которая подходит для установки conda.Однако переменная HDF5_CXX_LIBRARIES запутывается и включает пути к обоим путям библиотеки.Также установка системы появляется первой.Поэтому, когда я проверяю переменные сборки с помощью ccmake, для HDF_CXX_LIBRARY_hdf5 устанавливается путь conda, а для HDF5_CXX_LIBRARY_hdf5_cpp - системный путь, и поэтому при сборке я получаю неопределенную ошибку ссылки.Изменение последней переменной с помощью ccmake решает проблему.Однако это неудовлетворительное решение.

Есть ли способ убедиться, что CMake использует только путь к библиотеке conda?

1 Ответ

0 голосов
/ 03 февраля 2019

Мне удалось решить проблему, установив для HDF5_ROOT значение CONDA_ROOT.Таким образом, CMake будет сначала искать в корневом каталоге conda для HDF5 и определять правильную версию.

...