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



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

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

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

系统的此命令不应该也不能作为sudo运行,即使在尝试作为sudo make install运行make命令时,我也会收到与编译环境有关的错误(为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)

正如Stephen Newell在评论中提到的:

我猜install命令中的前导斜杠使cmake将其视为一个绝对目录。如果只使用data而不使用/data/,会发生什么情况?

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

相关内容

最新更新