【发布时间】:2019-06-27 08:18:26
【问题描述】:
我有一个链接到 hdf5 库的 CMake 项目。在我的系统上,我有两个版本的 hdf5:一个安装了系统的包管理器,一个安装了 conda。我想使用 conda 版本来构建我的项目。为此,我使用 CMake 来查找 hdf5 库
find_package(HDF5 COMPONENTS CXX)
这为 conda 安装定义了 HDF5_INCLUDE_DIRS 变量。然而 HDF5_CXX_LIBRARIES 变量被弄乱了,并且包含了两个库路径的路径。系统的安装也会首先出现。因此,当我使用 ccmake 检查构建变量时,将 HDF_CXX_LIBRARY_hdf5 设置为 conda 路径,并将 HDF5_CXX_LIBRARY_hdf5_cpp 设置为系统路径,因此在构建时出现未定义的引用错误。用 ccmake 改变后一个变量可以解决这个问题。然而,这并不是一个令人满意的解决方案。
有没有办法确保 CMake 只使用 conda 库的路径?
【问题讨论】:
-
确保发现路径只使用了 conda(首先是它)。
-
此外,您在链接时遇到的问题也会在执行时出现,因为会选择错误的库。
-
反之怎么办?我的 cmake 正在为 hdf5 找到 conda 包含,我希望它使用 ubuntu install 的 hfd5/serial