我想在/etc/init.d目录
我写过代码
INSTALL(FILES ${CMAKE_SOURCE_DIR}/app/script/appd DESTINATION /etc/init.d/appd)
但是当我使用cmake运行打包代码时,我得到错误
CMake Error at /home/vivek/workspace/app/build/standalone/cmake_install.cmake:54 (FILE):
file cannot create directory: /etc/init.d/appd. Maybe need
administrative privileges.
我如何设置cmake安装文件在/etc/init.
您可以这样做,但是您可能需要显式地设置:
set(CPACK_SET_DESTDIR ON)
:前include(CPack)
在你的CMakeLists.txt文件。(您只需要在CMake/CPack上的旧版本,2.8.3之前执行此操作)
您需要这样做的原因是您指定了一个完整的路径名作为您安装的文件之一的DESTINATION。为了在打包阶段正确地做到这一点,CPack需要在它的"make install"调用中使用DESTDIR环境变量。
出于向后兼容性的原因,我们没有默认自动执行此操作。
但是,这个错误在2.8.3版本中被修复了,所以它可以透明地自动完成,并使用完整的路径名安装规则:
http://public.kitware.com/Bug/view.php?id=7000希望您可以将CPACK_SET_DESTDIR设置为ON,或者使用包含自动修复的最新版本的CMake/CPack。
你不能。你唯一能做的就是要求用户以管理员权限为你的应用运行make install
。
另外,您可以尝试检测sudo
命令和add_custom_command()
的存在,它们将使用sudo安装文件。