CMake 跨平台编译:文件无法创建目录:/data。可能需要管理权限

CMake Cross Platform Compile: file cannot create directory: /data. Maybe need administrative privileges

我正在尝试根据检测到的系统编译 tar.gz 文件或 .deb 文件。

使用下面的代码,当检测到的系统是 Linux 时,我能够成功地创建一个 .deb 文件,但是当为需要 `.tar.gz' 的 QNX 编译时文件,我收到错误:

file cannot create directory: /data.  Maybe need administrative
  privileges.

这个系统命令不应该也不能 运行 为 sudo,甚至当尝试 运行 将 make 命令设置为 sudo make install 时,我收到相关错误到编译环境(为 QNX 配置)。

我的CMakeList.txt代码:

set(CPACK_ARCHIVE_COMPONENT_INSTALL ON)
if( "${CMAKE_CXX_PLATFORM_ID}" MATCHES QNX )
    message( STATUS "QNX found" )
    set(CPACK_GENERATOR "STGZ")
else()
    message( STATUS "defaulting to Linux" )
    set(CPACK_GENERATOR "DEB") 
endif()

install(
        TARGETS         binary 
        DESTINATION     "/data/"
        )  

include(CPack)

作为斯蒂芬·纽厄尔 :

My guess is the leader slash in your install command is making cmake treat it as an absolute directory. What happens if you just use data instead of /data/?

使用 data 而不是 /data/ 解决了问题。