我CMakeLists.txt通过执行以下操作从a安装一个空目录:
file(MAKE_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/var/log)
install(DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/var
DESTINATION ${CMAKE_INSTALL_PREFIX}
DIRECTORY_PERMISSIONS
OWNER_WRITE OWNER_READ OWNER_EXECUTE
GROUP_WRITE GROUP_READ GROUP_EXECUTE
WORLD_WRITE WORLD_READ WORLD_EXECUTE
COMPONENT runtime
)
Run Code Online (Sandbox Code Playgroud)
我希望看到这些权限:
/opt/myapp $ ls -l
drwxrwxrwx root root var
drwxrwxrwx root root var/log
Run Code Online (Sandbox Code Playgroud)
但相反,我看到:
/opt/myapp $ ls -l
drwxr-xr-x root root var
drwxrwxrwx root root var/log
Run Code Online (Sandbox Code Playgroud)
DIRECTORY_PERMISSIONS WORLD_WRITE并GROUP_WRITE适用于var/log但不适用var.目前我需要sudo chmod 777 var让我的程序运行.我怎么能纠正这个?
在无法用 MCVE 重现它之后我发现了这一点。
包含以下add_subdirectory()内容的一个 CMakeLists.txt:
install(DIRECTORY var DESTINATION ${CMAKE_INSTALL_PREFIX} COMPONENT runtime)
Run Code Online (Sandbox Code Playgroud)
覆盖了install上级命令的权限CMakeLists.txt
| 归档时间: |
|
| 查看次数: |
117 次 |
| 最近记录: |