如何从 Visual Studio 运行 cpack?

2023-11-29

我正在将一些包从 Linux 移植到 Windows,我发现 Visual Studio 与 cmake 具有相当好的集成。 我可以使用 cmake 配置和构建项目,但是我不知道如何运行 cpack 来创建安装包.

这个问题 -如何在 Windows 上使用 CMake + CPack + NSIS 创建安装程序?- 建议包.vcxproj文件应该由构建创建。是的,但似乎没有办法从 Visual Studio 内部构建/运行它

这似乎是一个奇怪的疏忽:

  • cmake集成很好
  • ctest 测试可以通过测试菜单运行
  • 安装目标可以通过构建菜单运行 但没有菜单选项可以使用 cpack 创建包。

注意我正在尝试创建 ZIP 或 TGZ 包,并且此时不需要 NSIS 的额外复杂性。 我用的是VS2019


我想出的最好的解决方案是你不能——至少不能直接这样做。更开明的人可能会更清楚,因为这确实看起来是一个奇怪的疏忽。

如果从工具/开发人员命令提示符打开命令提示符 您可以从那里手动运行 cpack。

另一个重要的一点是,不应在 Windows 上设置 CPACK_PACKAGING_INSTALL_PREFIX。 看https://gitlab.kitware.com/cmake/cmake/issues/17534

您可以通过将自定义目标(或多个目标)添加到您的CMakeLists.txt这将在目标视图。 例如(基于https://cmake.org/pipermail/cmake/2017-January/064830.html) add:

SET( CPACK_OUTPUT_CONFIG_FILE "${CMAKE_BINARY_DIR}/BundleConfig.cmake" )
ADD_CUSTOM_TARGET( bundle
         COMMAND "${CMAKE_CPACK_COMMAND}"
                 "-C" "$<CONFIGURATION>"
            "--config" "${CMAKE_BINARY_DIR}/BundleConfig.cmake"
            COMMENT "Running CPack. Please wait..."
            DEPENDS ${PROJECT_NAME} doxygen)

在我的例子中,安装包中包含的 Doxygen 文档是一个额外的依赖项。

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

如何从 Visual Studio 运行 cpack? 的相关文章

  • 为什么 Visual Studio 格式文档工具将标题标签放在两行上?

    所以如果我有一个像这样的 HTML 标题 h2 A Heading h2 我跑Edit gt Format Document它最终看起来像这样 h2 A Heading h2 为什么是这样 它不会对其他块元素执行此操作 但会对其他内联元素执
  • 为整个解决方案运行自定义工具

    有没有办法为整个解决方案 运行自定义工具 为什么 自定义工具正在开发中 当进行更改时 我需要刷新使用它的所有项目以确保没有任何损坏 在 Visual Studio 2010 中 解决方案导航器的图标栏中有一个按钮 可以运行解决方案中的所有
  • 我可以安装共享导入库吗?

    我有一个外部项目和一个导入的共享库 include 目录和 implib 都可以正常工作 但尝试安装共享库 dll 失败并出现以下错误 install TARGETS given target my shared lib which doe
  • 在 Visual Studio 2019 中组织 C# 使用?

    我分配了一个用于删除和排序用途的键盘快捷键 但是我想知道是否可以在保存或格式化文档时组织用途 I m using Power Commands https marketplace visualstudio com items itemNam
  • 如何使用cmake自动构建第三方库

    我在寻找什么 下载库 提取它 应用自定义补丁 运行配置 运行构建命令 我正在尝试构建的库是 Openssl Boost Thrift C ares Curl Pcre Nginx ICU JsonCPP 我想我可以使用外部模块做这些事情 h
  • Blazor 和 Visual Studio 的 Intellisense - 某些 Blazor 组件引用显示为错误错误,直到您单击该文件

    当我在 Visual Studio 中打开 Blazor 解决方案时 Intellisense 将显示对 Blazor 组件的引用的错误错误 并将成功编译 例如 在我的许多课程中我注入ILogger
  • 什么是数据断点?

    我刚刚才知道有data断点 过去 5 年我一直使用 Visual Studio 从事 C 工作 但从未使用过数据断点 有人可以阐明什么是数据断点 何时使用它们以及how与 VS 一起使用它们 根据我的理解 当我们想要检查变量值的更改时 我们
  • 编辑并继续:“当......时不允许更改”

    即使我创建了一个干净的 WinForms 项目 编辑并继续 也不起作用并给出错误 当调试器已附加到已运行的进程或正在调试的代码在构建或运行时进行了优化时 不允许进行更改 在 工具 选项 调试 中选中 编辑并继续 选项 未启用优化 似乎没有设
  • 从构建事件调用方法

    是否可以从构建后事件进行方法调用 namespace Test public class MyClass public void DoSomething Do something 当然 此类驻留在我指定其构建事件的项目中 有没有办法将 Do
  • ASP.NET 网站“发布”与 Web 部署项目

    如果我决定对 ASP NET 网站使用 发布 选项 而不是 Web 部署项目 我可以执行自定义 msbuild 操作吗 或者 如果我想在编译 部署期间执行自定义 msbuild 操作 我是否需要坚持使用 WDP 我认为发布选项是 VS NE
  • 如何在解决方案根目录添加“src”文件夹

    这听起来像是一个愚蠢的问题 但 Visual Studio 似乎不允许我做这个我一直在 github 上看到的简单组织 我从新的空解决方案开始 然后我想添加一个 src 文件夹 其中将包含多个项目 如果我右键单击并选择 添加文件夹 VS 将
  • Visual Studio 扩展和 Visual Studio 11 开发。预览

    我无法安装 Visual Studio 11 Dev 的许多扩展 预览 它一直说This extension is not installable on any currently installed products 我只有 VS 11
  • 在 Visual C++ 中创建“添加新项向导”

    也许我没有使用正确的关键字进行搜索 但我无法找到有关如何在 Visual Studio Community 2013 中为 C 项目制作自己的 添加新项向导 的文档 我想要实现的是能够将新的无扩展源文件添加到我的 C 项目中Project
  • 运行 t4 脚本作为 resx 文件的自定义工具

    我有一个资源文件MyResource resx 我想改变MyResource Designer cs文件生成 我有一个 t4 脚本 它接受 resx 文件作为输入并给出结果转换 但是 我必须手动运行此 t4 才能使其工作 我看到 resx
  • 如何在 Visual Studio 中更改 Azure 数据库表的列顺序

    我整个下午都在寻找在 MS Visual Studio 2022 中重新排序 Azure 数据库表列的方法 没有运气 在其他应用程序中 可以通过拖动或剪切和粘贴轻松重新排列列 这里无能为力 此时 我什至不确定可以在 VS 中移动列 我只对
  • 主游戏循环中的时间计算

    Quake 2 主游戏循环实现中有这样的代码 if initialized let base retain 16 bits of effectively random data base timeGetTime 0xffff0000 ini
  • MFC 中标题栏上的关闭按钮

    在基于 Vc 6 0 对话框的 MFC 应用程序中 我不希望我的用户通过按窗口本身右上角的按钮 X 以及 Alt F4 来关闭窗口 我想显示一个消息框 你真的想关闭应用程序吗 如果用户单击 确定 按钮 则应用程序必须关闭 否则 如果用户单击
  • 如何将 C# 8 与 Visual Studio 2017 结合使用?

    我想在 Visual Studio 2017 中使用 C 8 0 尤其是范围和不可空引用类型 这可能吗 展望未来 微软希望将 C 语言版本与框架版本比过去更紧密地联系起来 他们实际上只希望您将 C 8 与 NET Core 3 x 和 NE
  • 将 VSIX 功能添加到 C# 类库

    我有一个现有的单文件生成器 位于 C 类库中 如何将 VSIX 项目级功能添加到此项目 最终目标是编译我的类库项目并获得 VSIX 我实际上是在回答我自己的问题 这与Visual Studio 2017 中的单文件生成器更改 https s
  • C++ 中类级 new 删除运算符的线程安全

    我在我的一门课程中重新实现了新 删除运算符 现在我正在使我的代码成为多线程 并想了解这些运算符是否也需要线程安全 我在某处读到 Visual Studio 中默认的 new delete 运算符是线程安全的 但这对于我的类的自定义 new

随机推荐

  • 两个不同的 jenkins 构建器可以存在于同一个 hpi 中并共享相同的全局配置吗?

    我需要创建两个不同的 Jenkins Builder 类 每个都执行不同的操作 并且每个都需要自己的 jelly 但是 两者都需要相同的全局配置 global jelly 该配置指定主机和一些用户凭据 两种构建器类型的实例在执行执行期间将使
  • 向量值的不同组合

    假设我有一个由 n 个值组成的向量 我想获得其值的不同组合 例如 如果我有 vect a b c 我想要的不同组合是 a b c a b a c b c a b c 请注意 例如 a b 与 b a 相同 因此我不需要同时保留它们 计数自0
  • 如何在 Eclipse 中的可执行 .jar 文件中包含资源文件夹?

    我需要创建一个应用程序 使用各种参数 例如高度 体积或底面积 对各种类型的多边形进行排序 具有多边形参数 排序类型 排序方法的文件名参数将通过命令行传递 该文件位于项目中 src 文件夹外部的资源文件夹中 我已经实现了所有程序 当我通过 e
  • 无法动态创建和附加 div 和 span

    我正在编写一个 HTML 代码 其中有一个 div 说y这是在我的 HTML 正文中 有一个按钮 当用户单击此按钮时 我想要执行以下操作 创建另一个 div 类为smallBar 里面这个div 我想创建3个跨度 添加此 总计smallBa
  • 使用所有时区和有/无 DST 的日期进行单元测试

    如何使此单元测试在所有时区中通过 无论 DST 是否处于活动状态 import static org junit Assert import java text SimpleDateFormat import java util Date
  • 包含新的测试目录 Maven Surefire 插件

    现有结构 src test java gt 所有 java 单元测试 Maven Surefire 插件可以轻松获取此信息 现在 除了这些java单元测试用例之外 我还想包括一些groovy测试用例 并且我想将它们放在src test gr
  • Android - 从光标获取专辑艺术家

    我目前正在创建一个音乐播放器 并且正在使用光标检索设备上的音乐 mCursor getContentResolver query MediaStore Audio Media EXTERNAL CONTENT URI requestedCo
  • python-docx - 显示为普通段落的列表

    我正在尝试将数字和项目符号列表插入到现有的 Word 文档中 但是它们显示为普通段落 Open up existing document document Document existing document docx Add style
  • selenium 无法对网页元素进行屏幕截图

    我可以使用 Firefox get screenshot as file 2 png 对整个页面进行屏幕截图 但是当我使用passage screenshot 1 png 对网页元素进行屏幕截图时 它总是会引发此异常 selenium co
  • 嵌入字体和 11 月字体有什么区别?

    在书中我看到了例子 BaseFont bf BaseFont createFont KozMinPro Regular Identity V BaseFont NOT EMBEDDED Font font new Font bf 20 Ve
  • 将 Blazor .NET 6 WASM 部署到 GitHub 页面

    我正在尝试让 Blazor WASM 在 GitHub 页面中工作 我关注了这个视频 https www youtube com watch v nNxII6jvPvQ 我将它部署到这里 扩展 GH 页面 来源在这里 GH 页面源 我收到此
  • 如何用管道描述推荐基线

    我试图找到复合基线中关联的所有组件基线 我可以使用以下方式实现它 cleartool desc fmt rec bls CXp stream My Integration My PVOB I would save the receommen
  • 异步始终等待激活

    我想弄清楚是什么async await关键字是全部 但输出并不是我所期望的 控制台应用程序如下 class Program static void Main string args Console WriteLine Foo called
  • $and 查询没有返回结果

    好吧 这个简直要了我的命 也许已经晚了 我忘记了一些事情 但这应该有效 出于测试目的 我收集了大约 6000 个文档 有一个属性叫Priority在每个实例中其值为 2 以下两个查询分别返回all6000 个文档 Priority gt 1
  • MKMapKit 可拖动注释和绘制多边形

    我目前正在尝试允许用户向地图添加图钉 然后绘制连接这些图钉的多边形 但是我想扩展它以允许用户能够拖动引脚并且多边形将相应地更新 MKMapView 根据坐标数组中的排列从坐标数组中绘制多边形 如果我没有记错的话 我现在面临的问题是在用户重新
  • 无法启动 Rails Server - 找不到 JavaScript 运行时

    pallav pallav System Product Name Workspace blog rails server home pallav rvm gems ruby 2 0 0 p353 gems execjs 2 0 2 lib
  • pandas:相当于 SQL 的 datediff() 的函数?

    Python 的 pandas 中是否有与 SQL 的 datediff 函数等效的函数 这个问题的答案 在 DataFrame pandas 中添加包含日期之间天数的列解释如何计算天数差异 例如 gt gt gt pd to dateti
  • 如果加载时间太长,如何让 selenium 重新加载所需的 url

    如果加载过程花费太长时间 我希望 selenium 强制浏览器重新加载正在加载的页面 从 StackOverflow 我知道这段代码 new WebDriverWait driver 30 until ExpectedCondition
  • tkinter 和 asyncio,窗口拖动/调整大小阻止事件循环,单线程

    Tkinter 和 asyncio 一起工作时存在一些问题 它们都是想要无限期阻塞的事件循环 如果您尝试在同一线程上运行它们 其中一个将阻止另一个执行 这意味着 如果您想运行 tk 事件循环 Tk mainloop 则所有 asyncio
  • 如何从 Visual Studio 运行 cpack?

    我正在将一些包从 Linux 移植到 Windows 我发现 Visual Studio 与 cmake 具有相当好的集成 我可以使用 cmake 配置和构建项目 但是我不知道如何运行 cpack 来创建安装包 这个问题 如何在 Windo