cmake - 为什么CPack会生成空包?

标签 cmake installation packaging cpack

存在一个可创建一个控制台应用程序的 cmake 项目。 我将包生成的功能添加到该 cmake 项目中:

# ... above cmake code for one console application creation
# below code that I add:

#install
install(TARGETS ${PROJECT_NAME} RUNTIME DESTINATION "C:/Apps/Consolas" COMPONENT applications)

# pack
set(CPACK_PACKAGE_NAME ${PROJECT_NAME})
set(CPACK_PACKAGE_VENDOR "MyOrg")
set(CPACK_PACKAGE_DESCRIPTION_SUMMARY "CPack Component Installation Example")
set(CPACK_PACKAGE_VERSION "1.0.0")

set(CPACK_GENERATOR "ZIP")

include(CPack)

包创建成功,没有任何错误,(!)但包是空的。

为什么会发生这种情况以及如何解决此问题? (我用的是cmake 3.12.0)

最佳答案

DESTINATION应该是包内的相对目录。

请考虑以下因素:

install(TARGETS ${PROJECT_NAME} RUNTIME DESTINATION "bin" COMPONENT applications)

说明:将项目安装到 <build-dir>/_CPack_Packages 的子目录后,CPack 将创建 ZIP 文件。 。通过指定绝对路径,不会在预期的子目录中安装任何文件,并且包将为空。

关于cmake - 为什么CPack会生成空包?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51698076/

相关文章:

c++ - 如何最好地为 Visual Studio 2017 构建的 CMake C++ 项目设置输出目录?

python - 通过 setuptools 或 distutils 安装 Python 包后如何访问可编辑的配置文件?

CMake:如何正确设置新工具链以避免 "System is unknown to CMake"消息?

java - 关于 Java 应用程序安装程序的另一个问题

installation - SxS 安装和 WiX

java - 当我在安装过程中执行我的应用程序时 izPack 卡住

python - 如何为项目在 PYPI 上设置 "front page"文档?

java - 如何将图像图标设置为 JButton

gcc - 设置 C 标准标志启用 GNU 扩展

build-process - cmake:使用多个输出配置