CMake:如何避免 HDF5 系统和 conda 安装中的不匹配?

     2023-03-11     18

关键词:

【中文标题】CMake:如何避免 HDF5 系统和 conda 安装中的不匹配?【英文标题】:CMake: How do I avoid missmatch in HDF5 system and conda installation? 【发布时间】: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 【参考方案1】:

我能够通过将 HDF5_ROOT 设置为 CONDA_ROOT 来解决问题。因此 CMake 将首先在 HDF5 的 conda 根目录中查找并识别正确的版本。

【讨论】:

在 Windows 下通过 CMake 使用预编译的 HDF5 库

...中使用预编译的HDF5库。Linux版本运行良好,Windows下不同系统出现不同问题。问题#1:WindowsServer2008、VisualStudioUltim 查看详情

在 Windows 上使用带有 CMake 的 HDF5 库(错误:“找不到 HDF5”)

】在Windows上使用带有CMake的HDF5库(错误:“找不到HDF5”)【英文标题】:UsingHDF5LibrarieswithCMakeonWindows(Error:"CouldNOTfindHDF5")【发布时间】:2017-09-2208:19:35【问题描述】:我想在我的C++程序中使用HDF5库。我在Windows7上使用VS20... 查看详情

在 Linux 环境中使用 cmake 安装时 HDF5 的未定义符号

】在Linux环境中使用cmake安装时HDF5的未定义符号【英文标题】:UndefinedsymbolforHDF5wheninstallingwithcmakeinLinuxenvironment【发布时间】:2019-03-2721:42:39【问题描述】:我已经能够使用CMake(使用HDF5)安装和启动程序,但是一旦我访问所述... 查看详情

将串行 HDF5 C++ 与 CMake 一起使用

】将串行HDF5C++与CMake一起使用【英文标题】:UsingserialHDF5C++withCMake【发布时间】:2019-01-0418:14:36【问题描述】:我想在使用CMake构建的项目中使用HDF5C++绑定。所以我照常做:find_package(HDF5REQUIREDCOMPONENTSCXX)target_link_libraries(fooPUBLIC$H... 查看详情

CMake如何避免递归add_subdirectory?

】CMake如何避免递归add_subdirectory?【英文标题】:CMakehowtoavoidrecursiveadd_subdirectory?【发布时间】:2017-12-2018:43:40【问题描述】:我的工作区结构如下workspacelibrary1library2library3library3依赖于library2和library1library2依赖于library1在library3C... 查看详情

[cmake]如何使用 cmake 在 windows 上包含和链接系统库

】[cmake]如何使用cmake在windows上包含和链接系统库【英文标题】:[cmake]howtoincludeandlinksystemlibrariesonwindowsusingcmake【发布时间】:2016-04-3014:18:25【问题描述】:这是我的cpp代码:#pragmaonce#include<cstdio>intmain(char**args,intsize)printf("aaa... 查看详情

避免在柯南配置文件和 CMake 之间重复配置

】避免在柯南配置文件和CMake之间重复配置【英文标题】:AvoidrepeatingconfigbetweenConanprofileandCMake【发布时间】:2021-02-1005:47:22【问题描述】:我一直在为个人项目学习柯南,但我有一个问题无法通过查看文档和示例来回答。柯南... 查看详情

如何避免 cmake 子项目中的名称冲突?

】如何避免cmake子项目中的名称冲突?【英文标题】:Howtoavoidname***esincmakesubprojects?【发布时间】:2015-06-0513:25:20【问题描述】:所以我设置了一个元项目,这意味着我有一个包含多个子目录的目录(根目录),每个子目录都是... 查看详情

注册。使用 CMake 将外部库链接到项目

...:54:39【问题描述】:我正在尝试使用外部库构建项目,但系统一直认为它需要使用损坏的usr/lib中的库。我希望改用地址中构建的库:/home/CMake-hdf5-1.8.18/build/HDF5-1.8.18-Linux/HDF_Group/HDF5 查看详情

如何在 Homebrew Python 系统中使用 Conda?

】如何在HomebrewPython系统中使用Conda?【英文标题】:HowdoIuseCondainonHomebrewPythonsystem?【发布时间】:2016-07-2820:46:40【问题描述】:我使用Homebrew作为我的包总经理,并使用它的Python和pip以及virtualenvs进行软件开发。出于各种原因,... 查看详情

如何避免在 cmake 中自动链接 Qt5 库?

】如何避免在cmake中自动链接Qt5库?【英文标题】:howavoidautomaticlinkingofQt5librariesincmake?【发布时间】:2020-05-0421:56:28【问题描述】:我打算编译如下opencv代码:#include<stdio.h>#include<opencv2/opencv.hpp>usingnamespacecv;intmain(intargc,... 查看详情

CMake 为 VS 项目生成循环依赖,但不生成文件。如何避免?

】CMake为VS项目生成循环依赖,但不生成文件。如何避免?【英文标题】:CMakegeneratescirculardependenciesforVSproject,butnotmakefiles.Howtoavoid?【发布时间】:2019-08-0507:53:57【问题描述】:这个示例是从我正在从事的一个实际项目中总结出来... 查看详情

开源包管理系统和环境管理系统conda(代码片段)

开源包管理系统和环境管理系统Conda简介在做Python开发时,或许你接触过virtualenv,他可以为不同的环境安装不同的Python环境支持。如果你还知道virtualenvwrapper,你会发现它用起来更加方便,它是对virtualenv的封装,可以很方便的创... 查看详情

cmake基础教程(30)cmake构建系统概览(代码片段)

...Make的官网,站在了一个全局的角度叙述CMake的构建系统是如何工作和组织的。介绍¶基于CMake的构建系统被组织为一组高级逻辑目标。每个目标对应一个可执行文件或库,或者是包含自定义命令的自定义目标。目标之间的依赖关... 查看详情

cmake基础教程(30)cmake构建系统概览(代码片段)

...Make的官网,站在了一个全局的角度叙述CMake的构建系统是如何工作和组织的。介绍¶基于CMake的构建系统被组织为一组高级逻辑目标。每个目标对应一个可执行文件或库,或者是包含自定义命令的自定义目标。目标之间的依赖关... 查看详情

(详细)在windows平台使用cmake安装cgns

参考技术A墙裂推荐阅读上一篇文章:https://www.jianshu.com/p/bf2fd1752f7f若安装支持HDF5的CGNS,同样参考该文章安装HDF5以上命令中主要可调整条目参看下表库文件位于下面目录上述文件分别拷贝到安装目录下的include和lib文件夹 查看详情

如何让 conda 使用自己的 gcc 版本?

】如何让conda使用自己的gcc版本?【英文标题】:Howtomakecondauseitsowngccversion?【发布时间】:2021-12-1115:34:08【问题描述】:我正在尝试在远程系统上运行stylegan2-pytorch的培训。远程系统上安装了gcc(9.3.0)。我正在使用安装了以下内容... 查看详情

CMake C++ 包含静态系统库到项目 - 如何

】CMakeC++包含静态系统库到项目-如何【英文标题】:CMakeC++includestaticsystemlibrarytoproject-howto【发布时间】:2020-09-0508:19:31【问题描述】:我是C++和CMake项目的新手。我(使用CLion)编写了非常简单的应用程序,它使用了mysql连接器... 查看详情