我有一个链接到hdf5库的CMake项目。在我的系统上,我有两个版本的hdf5:一个安装了系统的软件包管理器,另一个安装了conda。我想使用conda版本来构建我的项目。为此,我使用CMake使用以下命令查找hdf5库:
find_package(HDF5 COMPONENTS CXX)
这定义了HDF5_INCLUDE_DIRS变量,刚好适合conda安装。但是,HDF5_CXX_LIBRARIES变量被弄乱了,并包含两个库路径的路径。系统的安装也会首先出现。因此,当我使用ccmake检查构建变量时,将HDF_CXX_LIBRARY_hdf5 ist设置为conda路径,将HDF5_CXX_LIBRARY_hdf5_cpp设置为系统路径,因此在构建时会出现未定义的参考错误。使用ccmake更改后一个变量可以解决该问题。但是,这不是令人满意的解决方案。
是否有办法确保CMake仅使用conda库的路径?
答案 0 :(得分:0)
我能够通过将HDF5_ROOT设置为CONDA_ROOT来解决该问题。因此,CMake将首先在HDF5的conda根目录中查找并确定正确的版本。