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:将子项目目标导出到主项目

    我目前有一个项目叫做LIBS具有这样的结构 Lib1 CMakeLists txt lib1 class cpp lib1 class h lib2 CMakeLists txt lib2 class cpp lib2 class h cm
  • 如何判断给定目标是库还是可执行文件?

    内置功能install TARGETS 将库目标安装到可执行目标之外的其他位置 我想做类似的事情 给定目标名称列表 我想将其中的所有库目标添加到列表变量中 并将所有运行时目标添加到另一个变量中 我找不到 CMake 的默认目标属性列表 但我
  • Cmake 错误:无效的转义序列 \U

    使用 CMake 在 VC 10 中运行 OpenCL 代码时 出现以下错误 CMake Error at CMakeLists txt 6 set Syntax error in cmake code at C Users Shreedh
  • 为什么GCC编译的应用程序总是包含_mcount符号?

    库并不总是包含 mcount 符号 但应用程序包含 您可以使用 gobjdump 或 nm 实用程序验证这一点 我读过 mcount 用于实现分析 但即使禁用分析并启用优化 O2 该符号仍然存在 它还有其他额外的用途吗 更新 我使用的是 S
  • 将 dll/lib 链接到 cmake 项目

    我试图将库链接到我的 cmake 项目 但遇到链接器错误 我花了 2 个小时尝试解决这个问题 并创建了一个简单的项目 在其中对所有路径进行了硬编码 CMAKE MINIMUM REQUIRED VERSION 3 0 PROJECT Tes
  • 如何使用额外的目标文件重新链接现有共享库

    我现有的 Linux 共享对象文件 共享库 已被删除 我想生成一个新版本的库 其中包含一些附加功能 我本来希望像下面这样的东西会起作用 但没有 ld o newlib so newfuncs o whole archive existing
  • 如何防止 CMake 在构建时(而不是安装时)为共享库创建符号链接?

    我正在使用 CMake 在 Linux 上使用 Bullet3 构建一个项目 在构建整个解决方案时 它会构建附加了 SOVERSION 的 Bullet 输出库 并创建一个不带版本的符号链接 对于我的特定场景 我不喜欢这种行为 并且我不想编
  • C/C++ with GCC:静态地将资源文件添加到可执行文件/库

    有人知道如何使用 GCC 将任何资源文件静态编译为可执行文件或共享库文件吗 例如 我想添加永远不会改变的图像文件 如果它们改变了 我无论如何都必须替换该文件 并且不希望它们位于文件系统中 如果这是可能的 我认为这是因为 Visual C f
  • CMake(Ninja 后端)使用 /MT 编译

    我有一个类似的问题CMake 使用 MT 而不是 MD 进行编译 https stackoverflow com questions 14172856 cmake compile with mt instead of md但有一些差异 我正
  • 带包装的 CMAKE RPATH

    我正在使用 cmake 创建包 我有以下结构 bin bin1 lib lib1 lib2 其中lib1和lib2是外部动态库 如何设置 RPATH 以便它自动与 lib1 和 lib2 链接 我也在这方面对 cmake 很感兴趣 Cmak
  • CMake - 未定义参考

    我正在尝试将 gtest 包含到我的项目中 问题是我在 GTest 中收到未定义的引用错误 我正在尝试在 Gtest 中测试 Node 类 在节点的构造函数中 我使用类记录器 尽管我已将库记录器添加到 gtest target 中 但我仍然
  • 静态库和共享库的区别?

    静态库和共享库有什么区别 我使用 Eclipse 有多种项目类型 包括静态库和共享库 一个比另一个有优势吗 共享库是 so 或在 Windows 中为 dll 或在 OS X 中为 dylib 文件 与该库相关的所有代码都在此文件中 并由在
  • VS 2010 和 CMake:“rc”未被识别为内部或外部命令

    我正在尝试使用 VS 2010 和 CMake 在 Windows 10 Home 上构建一个项目 我收到以下错误 zutil c lib nologo out zlib lib adler32 obj compress obj crc32
  • CMAKE - 运行时库隐藏文件

    我正在运行 Linux Redhat 我安装了 Anaconda 并且我正在尝试使用安装程序 libspimage CMAKEamd 我收到以下警告 错误 src CMakeLists txt 74 ADD LIBRARY 处的 CMake
  • CMake 错误:“add_subdirectory 未给出二进制目录”

    我正在尝试将 Google Test 集成到更大项目的子项目中 但找不到令我满意的解决方案 我有两个限制 Google Test 的源代码已经位于项目结构中的某个位置 因此不能使用 URL 从 git 存储库下载它 Google Test
  • CMake 添加对安装目标的依赖

    我在使用cmake时遇到以下问题 我使用 UseDoxygen 来自http tobias rautenkranz ch cmake doxygen http tobias rautenkranz ch cmake doxygen 为我的图
  • 如何使用cmake自动构建第三方库

    我在寻找什么 下载库 提取它 应用自定义补丁 运行配置 运行构建命令 我正在尝试构建的库是 Openssl Boost Thrift C ares Curl Pcre Nginx ICU JsonCPP 我想我可以使用外部模块做这些事情 h
  • 如何将 OpenCV 的测试框架与 CMake 结合使用?

    好像 OpenCV 有一个测试框架 https github com Itseez opencv tree ef91d7e8830c36785f0b6fdbf2045da48413dd76 modules ts include opencv
  • 是什么使 ELF 库中的符号成为对象或普通符号?

    我有一个正在加载一些插件的应用程序dlopen 具体来说dlopen name RTLD LAZY RTLD DEEPBIND 有一些插件 以二进制形式提供 可以正常加载 但我尝试构建的插件无法加载并出现错误 opt app plugins
  • TFS 2010 跨团队项目分支 - 最佳实践

    我在了解如何根据 TFS Ranger 团队提供的最佳实践配置 TFS 时遇到问题 问题是这样的 我的公司有多种产品使用共享的通用代码库 gt Core gt gt Main Source Parent Branch gt gt Produ

随机推荐

  • 如何使用 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