CMake 库安装最佳实践

2024-04-11

我正在尝试使用 cmake 为共享库安装脚本。当我发现我想使用install,我不确定设置目的地的最佳做法是什么。

此评论* https://stackoverflow.com/a/10928305/258418 and various https://code.google.com/archive/p/libhsplasma/issues/73 错误报告 https://git.reviewboard.kde.org/r/120933/参考LIB_INSTALL_DIR.

但是我几乎找不到任何相关文档LIB_INSTALL_DIR

我对库安装的最佳猜测是:

add_library(mylib SHARED ${sources})
install(TARGET mylib LIBRARY DESTINATION ${LIB_INSTALL_DIR})
install(FILES ${libheaders} DESTINATION ${??})

我对此的问题是:

  1. 我该如何设置LIB_INSTALL_DIR用户可以根据需要覆盖它(set LIB_INSTALL_DIR lib)不允许这样做,是吗?)
  2. 头目录的正确变量是什么? (我应该尝试将其默认为(如果未定义则将其设置为)CMAKE_SYSTEM_INCLUDE_PATH,如果是的话我该怎么做?)
  3. install(TARGET has a INCLUDES DESTINATION,有没有比使用手动更好的方法install(FILES ${libheaders} DESTINATION ${??})对于一堆标题?

*第一条评论,作者Fraser https://stackoverflow.com/users/2556117/fraser,找不到直接链接到评论的方法,只能链接到答案。


None

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

CMake 库安装最佳实践 的相关文章

  • cmake 在 OS X 上找不到 gl.h

    我在 OS X 10 10 上并尝试使用 GLUT 和 OpenGL 构建一个 C 项目 我将其简化为展示我的问题的最小示例 我有以下内容CMakeLists txt cmake minimum required VERSION 2 8 F
  • 如何使用c++在运行时动态注册工厂类中的类

    现在 我实现了一个工厂类来动态创建带有标识字符串的类 请参见以下代码 void IOFactory registerIO Register NDAM9020 gt IOBase return new NDAM9020 Register BK
  • Visual Studio 将新文件放入错误的目录

    我使用 cmake 和 Visual Studio 并具有以下目录结构 workspace CMakeLists txt project1 src project2 src build 这背后的想法是源外构建 以便 cmake 生成的构建文
  • CMake+Xcode:应用程序存档失败,具体取决于同一解决方案中的库。在 BUILD_TREE 而不是 Xcode/DerivedData 中构建 Archive?

    几周前 我们移植了代码库以使用 CMake 进行构建管理 我们现在意识到 当我们试图做到这一点时 存在一个重大问题Archive依赖于同一 Xcode 解决方案中构建的一个 或多个 库的应用程序 链接器失败 因为它找不到所依赖的库 并且该库
  • 使用 RPATH 但不使用 RUNPATH?

    这一页 https web archive org web 20120418232524 http labs qt nokia com 2011 10 28 rpath and runpath 说关于图书馆检索的顺序ld so Unless
  • 如何检测当前作用域在 CMake 中是否有父作用域?

    有什么方法可以检测当前作用域是否有父作用域 我有一个项目 可以是独立项目 也可以是另一个项目的子项目 为了允许子项目情况 我使用 PARENT SCOPE 标志来 set 将内容推送到父项目 但是 当构建为独立项目时 我收到 当前范围没有父
  • 使用 CMake 链接 .s 文件

    我有一个我想使用的 c 函数 但它是用Intel编译器而不是gnu C编译器 我在用着cmake构建程序 我实际上正在使用ROS因此rosmake但基础是cmake所以我认为这更多是一个 cmake 问题而不是ROS问题 假设使用构建的文件
  • 如何使用Cmake使用框架?

    对于 Macos 我想链接到一些框架 在 Windows 中 我想链接到一些库 比如OpenGL Framework 如何使用cmake表达这个需求 您可以尝试以下代码 target link libraries
  • 使用 cmake 构建项目后如何运行 ctest

    我希望每次成功构建项目时都启动测试 如果某些测试被破坏 我希望我的构建也被破坏 默认情况下 我需要通过运行来手动运行测试ctest命令 CTest 实际上可以构建项目 但我使用调用的 IDEmake建立资源 和make不运行测试 我将此命令
  • CMake:如何在多个文件上运行自定义命令来生成源文件?

    我有以下情况 我想编译一些Scheme文件Gambit https github com gambit gambit成可执行文件 为此 我使用 gambit 将所有计划文件翻译 生成为 C 和目标文件 然后将其编译并链接为可执行文件 假设我
  • 无法安装 R 包:CMake 错误

    我正在尝试安装factoextra 但我在 CMake 部分遇到了困难 特别是出现如下错误 CMake Error The source directory tmp does not exist 当我尝试安装其依赖项时也是如此 nloptr
  • 在 Spark 执行器节点上安装 Python 依赖项的最简单方法?

    据我所知 您可以将单个文件作为 Python Spark 程序的依赖项发送 但是成熟的库 例如 numpy 呢 Spark 是否有办法使用提供的包管理器 例如 pip 来安装库依赖项 或者这必须在 Spark 程序执行之前手动完成 如果答案
  • 使用 CMAKE (VISUAL STUDIO) 链接调试和发布库

    已经有一个Thread https stackoverflow com q 2209929 293195这并没有真正帮助 我希望能够链接例如Foo lib for Release配置和Foo d lib for Debug配置 我怎样才能实
  • 单个 CMakeLists.txt 足以满足我的项目需求吗?

    我正在尝试将旧的 CMake 移植到现代 CMake CMake 3 0 2 或更高版本 在旧的设计中 我有多个 CMakelists txt 每个目录都包含一个 CMakeLists txt 文件 我当前项目的目录结构如下所示 VizSi
  • 如何以编程方式迭代所有 CMake 目标?

    有没有办法从顶层获取 CMake 项目的所有目标CMakeLists txt 即以编程方式迭代目标 我想要这样做的原因是将一些 XCode 特定设置应用于每个目标 if CMAKE GENERATOR MATCHES Xcode inclu
  • 如何在cmake中添加cuda源代码的定义

    我使用的是 Visual Studio 2013 Windows 10 CMake 3 5 1 一切都可以使用标准 C 正确编译 例如 CMakeLists txt project Test add definitions D WINDOW
  • 如何重命名共享库以避免同名冲突?

    我找到了一个图书馆 libjson http sourceforge net projects libjson 我正在尝试将其构建为共享库并在项目中使用 建造很简单 修复 Makefile 错误后 SHARED 1 make install
  • C++ 将枚举值捕获为异常

    我正在尝试使用external C 库将其异常定义为 enum MY ERRORS ERR NONE 0 ERR T1 ERR T2 然后在代码中抛出异常是这样的 if throw ERR T1 作为 C 编程新手 我会这样做 try ca
  • 如何让 CMake 为目标安装 PDB 文件

    如何让 CMake 安装调试 Visual Studio 生成的 DLL 文件和 EXE 文件所需的配套 PDB 文件 我已经挣扎了一段时间 试图找到这个问题的一个好的答案 我现在认为我找到了一个 使用安装文件命令
  • MySQL C++ 连接器未解决的依赖关系(VS 2015)

    我正在尝试在 Windows Visual Studio 2015 上编译 MySQL Connector C 我根据以下内容使用CMake生成了项目文件官方说明 https dev mysql com doc connector cpp

随机推荐

  • 如何使用 php 转义字符串中的单引号(撇号)

    我有一个这样的 SQL 查询 stmt pdo gt prepare SELECT FROM products keywords WHERE product type product type 我不知道它的价值是多少 产品类型多变的 但现在
  • 除 File.Move 之外更快的文件移动方法

    我有一个控制台应用程序大约需要 625 天才能完成 除非有办法让它更快 首先 我正在一个包含大约 4 000 000 个文件 如果不是更多的话 的目录中 我正在一个数据库中工作 每个文件都有一行 然后还有一些 现在使用 SQL 相对较快 瓶
  • 从 XBRL 文档中获取特定值

    我一直在使用Gepsio https github com JeffFerguson gepsio尝试通过他们的 EDGAR 系统翻阅标准 SEC XBRL 文件 尽管我多次尝试解决这一问题 但似乎我还是不知所措 当您从任何文档中提取事实
  • 如何使用 Animated.View 在本机反应中以动画形式展开/折叠文本预览

    我正在创建一个文本组件 默认情况下我希望它是 2 行 如果用户点击它 它将扩展到完整长度 如果用户再次点击它 它将折叠回 2 行 到目前为止 我的返回函数中有类似的内容
  • 了解 smb 和 DCERPC 的远程命令执行功能

    我试图了解通过 impacket 脚本在 Windows 上执行远程命令的所有可用方法 https www coresecurity com corelabs research open source tools impacket http
  • PyGame rect.move 运动无法正常运行

    我正在以打砖块克隆的形式开发我的第一个 pygame 应用程序 对于玩家桨 我检查主游戏循环中的按键保持情况 然后每帧重新绘制玩家对象的精灵 如下面的代码片段所示 class Player def init self self sprite
  • kotlin中val和final有什么区别?

    在Kotlin中 val用于使变量 属性不可更改 那么final有什么用呢 据我所知 在java中final用于限制继承或使变量常量 但在kotlin中val正在做常量部分那么final在kotlin中会做什么 While val and
  • 使用 TFS 命令行部署 SSIS 项目

    如何从 TFS 2015 部署 SSIS 项目 对于常规数据库项目来说 sqlpackage exe publish与发布配置文件 将 SSIS 项目模型自动部署到服务器中的命令行参数是什么 我们使用的是 SQL Server 2016 E
  • Oracle中不使用触发器的自动增量

    oracle中除了使用触发器还有哪些方式实现自增 您可以创建和使用预言序列 语法和详细信息位于http www techonthenet com oracle sequences php http www techonthenet com
  • Facebook 风格的 ASP.NET 聊天组件

    我将启动一个有点像社交媒体网站的网站 我需要一个基于 AJAX 的 ASP NET 聊天控件 如果有 jQuery 就太好了 因为我的整个网站将使用 jQuery 主题进行主题化 我正在寻找类似于 Gmail 或 Facebook 风格的聊
  • Android 如何在画布上匀速缓慢绘制多条线?

    我需要在Android中捕获标记在canvas上绘制图形 效果如下图所示 好吧 到目前为止 我可以通过以下方式绘制一条等速的边值动画器 但是 我一次只能绘制一侧 因为在绘制下一侧时无法保存最后一侧 那么 有没有什么好的办法可以解决这个问题呢
  • elasticsearch - 具有多个条件的术语过滤器

    我想实现一次对ES的搜索具有2个或更多条件的多个值 For Eg customer index has 2 fields userid and order 我使用下面的查询来搜索与这两个字段匹配的结果 query filtered quer
  • Javascript:检测窗口何时完全加载

    我有一个脚本 可以在网页生命周期的任何阶段加载 当脚本加载时 它必须运行一个initialize 方法 我希望此函数在 onload 事件上运行 但我无法确定该页面尚未加载 即 onload 尚未被触发 理想情况下我的脚本如下所示 var
  • 如何在Python中用字符串轴而不是整数绘制混淆矩阵

    我正在关注上一篇关于如何在 Matplotlib 中绘制混淆矩阵的线程 脚本如下 from numpy import import matplotlib pyplot as plt from pylab import conf arr 33
  • 如何退出(或导航出)MasterDetail 页面到 Xamarin 中的简单 ContentPage。形式?

    我有一个 Xamarin Forms 应用程序 其中包含以下内容 LoginPage a ContentPage type RegisterPage a ContentPage type parentMasterDetail a Maste
  • 你能在 Haskell 中为整个类创建一个类的实例吗?

    假设我想让所有数字成为Monoid 而不必为每个实例创建一个实例Num像这样 instance Monoid Int where mappend mempty 0 instance Monoid Float where mappend me
  • 无法获取 Python 2.7 的 SFML

    我正在尝试做什么我正在尝试获取 Python 2 7 的 SFML 绑定 使用 Windows 的 32 位版本的 python https python sfml org download html https python sfml o
  • Python中最佳比率的压缩?

    Python 中哪种压缩方法的压缩率最好 常用的是zlib compress 最好的还是有更好的选择 我需要获得尽可能最佳的压缩比 我正在压缩字符串并通过 UDP 发送它们 我压缩的典型字符串大约有 1 700 000 字节 我确信可能有一
  • 视频录制挂在 IMFSinkWriter->Finalize() 上;

    我在使用 Media Foundation 将视频录制完成为 mp4 时遇到问题 其中调用IMFSinkWriter gt Finalize 永远挂起 它并不总是发生 并且几乎可以在任何计算机上发生 在 Windows 服务器 7 8 10
  • CMake 库安装最佳实践

    我正在尝试使用 cmake 为共享库安装脚本 当我发现我想使用install 我不确定设置目的地的最佳做法是什么 此评论 https stackoverflow com a 10928305 258418 and various https