CMake-CPack包安装路径噩梦

2024-03-05

我对 CMake-CPack 感到沮丧近一周了。

不好的是 CMake-CPack 在线文档没有很好地记录这部分。

经过谷歌搜索后,我找到了可以使用的变量:

CPACK_PACKAGING_PREFIX          # NOT documented
CMAKE_INSTALL_PREFIX            # Documented, but the behavior seems weird
CPACK_INSTALL_PREFIX            # NOT documented
CPACK_PACKAGE_INSTALL_DIRECTORY # Documented, but this variable does NOT work as the online document described
CPACK_PACKAGING_INSTALL_PREFIX  # NOT documented

我想做的是:使用以下命令打包 Debian 包fakeroot make package,当软件包安装时sudo dpkg -i MyProgramPackageName,将其安装到/usr/local,有一个子目录MyProgramPackageName。也就是说,所有文件都应该安装在/usr/local/MyProgramPackageName-V.1.2.3.

我一直在尝试(CMake 2.8.3 和 CMake 2.8.5)调整这些变量。我尝试了很多组合,但都失败了。

成功的唯一方法是:

Set(CPACK_PACKAGING_INSTALL_PREFIX /usr/local/MyProgramPackageName-V.1.2.3)

但这个变量甚至没有记录,并且无法保证其行为。如果您对我的问题感到困惑,请告诉我何时使用CPACK_PACKAGE_INSTALL_DIRECTORY?因为关于这个变量的文档描述确实很有吸引力,而且它确实是我想要的,但我就是无法让它工作。

请建议我。

Peter


我没有找到任何文档来支持这一点,但我确实找到了一些错误报告和电子邮件档案,它们似乎表明您应该执行以下操作:

set(CPACK_SET_DESTDIR true)
set(CPACK_INSTALL_PREFIX /opt/MySuperAwesomePrefix-v.1.2.3)

如果未设置 CPACK_INSTALL_PREFIX,则默认为 CMAKE_INSTALL_PREFIX。现在的相对路径install(... DESTINATION dest)最终将在包文件中作为 CPACK_INSTALL_PREFIX/dest 。当我尝试生成 deb 文件时,这有效。

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

CMake-CPack包安装路径噩梦 的相关文章

  • python:获取上两层目录

    好吧 我不知道模块在哪里x是 但我知道我需要向上两层目录的路径 那么 有没有更优雅的方法 import os two up os path dirname os path dirname file 欢迎提供适用于 Python 2 和 3
  • 如何在 Mac 上安装 Beautiful Soup 模块?

    我读了这篇文章但没有找到解决方案 http docs python org install index html http docs python org install index html 正常 的方法是 访问美丽汤网站 http ww
  • wasm-ld:错误:初始内存太小,需要 18317952 字节

    我想将 ffmpeg 编译为 wasm 下载 FFMPEG 和 emsdk 源代码后 我使用下面的命令进行构建 emconfigure configure cc emcc enable cross compile target os non
  • 构建涉及 cmake 的项目,如何使其了解库

    当我尝试在 64 位 linux debian 机器上使用 cmake 和 gcc 构建此项目时 我从链接器中收到错误 Linking C executable cpsadamsx home dala lib64 libSimTKcommo
  • pybind11:如何将 c++ 和 python 代码打包到一个包中?

    我正在尝试使用 CMake 和 pybind 11 将现有的 Python 代码和新的 C 11 代码打包在一起 我认为我缺少一些可以添加到 CMake 脚本中的简单内容 但在任何地方都找不到它 pybind11 示例只有 C 代码和没有P
  • 如何使用 setuptools Windows 安装程序在开始菜单中创建快捷方式

    我想为我的 Python Windows 安装程序包创建开始菜单或桌面快捷方式 我正在尝试遵循https docs python org 3 4 distutils builtdist html the post 安装脚本 https do
  • MSI 和 EXE 安装程序有什么区别,我应该选择哪一个? [复制]

    这个问题在这里已经有答案了 可能的重复 msi 和 setup exe 文件之间有什么具体区别 https stackoverflow com questions 1789530 what are the specific differen
  • Haskell,堆栈:找到可执行文件

    我正在寻找类似的东西 stack whereis hasktags where whereis行为或多或少类似于 UNIXwhereis命令 hasktags是这样运行的 stack exec hasktags stack exec whe
  • 为 Qt 应用程序创建 Linux 安装

    我刚刚用 Qt Creator 制作了一个很棒的程序 我对自己很满意 如何将其从台式机移至笔记本电脑 那么 最好的方法是安装程序 对吗 对于 Ubuntu 这是一个 Debian 软件包 对吗 我怎么做 有人这样做过吗 他们可以分享 QT
  • rvm编译安装ruby 2.5.0出错

    我正在尝试使用 rvm 安装 ruby 2 5 0 但出现错误 我在 Ubuntu 18 16 和现在的 Linux Mint Cinnamon 上尝试过 基本上我在运行安装 ruby 的代码之前所做的是 打开 GPG 密钥https rv
  • 如何在使用cmake完成make后打印消息?

    我正在尝试使用 CMake 完成构建过程后打印消息 我只是想在之后通知用户make命令已完成 没有任何错误 我该怎么做 我试过add custom target 但我无法选择何时跑步 另外 我尝试过add custom command 它再
  • 规范化 solaris 上的路径名

    在 GNU 系统上我只会使用readlink f SOME PATH 但 Solaris 没有 readlink 我更喜欢在 bash 中运行良好的程序 但如果需要的话其他程序也可以 Edit 到目前为止 我想到的最好的方法是使用 cd 和
  • C# 获取资源文件夹路径

    我的项目中的一些资源很好 并且使用字符串路径可以正常工作 但是如果我将项目移动到另一个目录或另一台计算机 它将停止工作 请我需要在字符串变量中获取项目资源文件夹的路径 像这样的东西 C Users User1 Documents
  • 在主目录中安装库

    在 Linux Ubuntu 中 我尝试运行一个工具 但它显示错误 库丢失 我无权在系统中安装任何内容 或者根本无法从我的用户帐户执行 sudo 是否可以在我的主目录 没有 sudo 中安装缺少的库 在我的例子中为 libstdc so 6
  • 无法在 Windows 10 上更新 pip 的 PATH 变量

    我知道有数千个类似的主题 但我的 pip 命令突然停止工作 尽管我进行了所有研究 但我无法弄清楚原因 自从我上次使用 pip 以来已经有一段时间了 令人惊讶的是我的计算机不再识别该命令 我重新安装了pip 提示告诉我PATH变量没有正确更新
  • 安装 Windows 服务时的凭据

    我正在尝试使用 VisualStudio Net 部署项目安装 C Windows 服务项目 要运行部署项目 我右键单击并从上下文菜单中选择 安装 安装向导将运行并最终提示我出现 设置服务登录 对话框 要求输入用户名和密码 当我从命令行使用
  • 使用 cmake 处理头文件依赖关系

    我正在一个小型 C 项目上使用 CMake 到目前为止 它运行得很好 有一点点 x 当我更改头文件时 通常需要重新编译许多源文件 直接或间接包含它的文件 但是 cmake 似乎只检测到some的源文件被重新编译 导致损坏状态 我可以通过清除
  • 在 Windows 7 上安装 Visual Studio 2015 社区版

    我尝试在 Windows 7 64 位上安装 Visual Studio 2015 社区版 由于某种原因 安装程序显示 安装被阻止 并显示错误 此版本的 Visual Studio 需要一台装有较新版本 Windows 的计算机 为了完全安
  • 使用 -T 开关运行时 $ENV{ENV} 不安全

    当我尝试最后一个例子时perlfaq5 如何计算文件中的行数 http perldoc perl org perlfaq5 html How do I count the number of lines in a file 我收到一条错误消
  • CMake“项目”指令的正确用法是什么

    我有一个很大的代码库 它构建了几十个库和几个可执行文件 代码库按层次结构进行分解 并且几乎在每个级别都构建了库 我已经仔细检查并在每个目录中放置了一个 CMakeLists txt 文件来构建每个库 在每个 CMakeLists txt 中

随机推荐