首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用CPack在Mac上打包系统守护进程

使用CPack在Mac上打包系统守护进程
EN

Stack Overflow用户
提问于 2019-01-15 12:30:42
回答 1查看 683关注 0票数 0

我试图在Mac上创建一个系统范围的服务,使用CMake进行构建,使用CPack生成包。存储库相当大,所以我创建了一个较小的版本来测试它。结果发现,我不知道如何将有绝对路径的东西打包成目的地。

这是CMake代码:

代码语言:javascript
复制
install(PROGRAMS ${CMAKE_BINARY_DIR}/hello
        DESTINATION "/var/local/hello"
        COMPONENT TS
      )

install(PROGRAMS com.hello.world.plist
        DESTINATION "/Library/LaunchDaemons/"
        COMPONENT TS
      )

这是cpack的输出

代码语言:javascript
复制
mac-mini-2:build melanoholly$ cpack ..
CPack: Create package using productbuild
CPack: Install projects
CPack: - Run preinstall target for: testingPack
CPack: - Install project: testingPack
CMake Error at /Users/salvobit/sandbox/cpack-example-mac-daemon/build/cmake_install.cmake:44 (file):
  file cannot create directory: /var/local/hello.  Maybe need administrative
  privileges.


CMake Error at /Users/salvobit/sandbox/cpack-example-mac-daemon/build/cmake_install.cmake:56 (file):
  file INSTALL cannot copy file
  "/Users/salvobit/sandbox/cpack-example-mac-daemon/com.hello.world.plist" to
  "/Library/LaunchDaemons/com.hello.world.plist".


CPack Error: Error when generating package: testingPack

如果我以根用户身份运行cpack,则生成的包是空的。

谁能告诉我怎么解决这个问题吗?

我使用3.13.0-rc2版本的CMake。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-02-05 08:53:22

解决这个问题的关键是将CMAKE_INSTALL_PREFIX指定为

代码语言:javascript
复制
set(CMAKE_INSTALL_PREFIX "/")

当您这样做时,您可以在/var/中安装路径

代码语言:javascript
复制
install(PROGRAMS <binary>
        DESTINATION "../var")
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/54198929

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档