C++ CMake跨平台编译:文件无法创建目录:/data。可能需要管理权限
根据检测到的系统,我正在尝试编译C++ CMake跨平台编译:文件无法创建目录:/data。可能需要管理权限,c++,cmake,cross-compiling,cpack,C++,Cmake,Cross Compiling,Cpack,根据检测到的系统,我正在尝试编译tar.gz文件或.deb文件 使用下面的代码,当检测到的系统是Linux时,我能够成功地创建.deb文件,但是当为QNX编译时,它需要一个“.tar.gz”文件,我收到错误: file cannot create directory: /data. Maybe need administrative privileges. 系统的此命令不应也不能作为sudo运行,即使尝试作为sudo make install运行make命令,我也会收到与编译环境相关的错
tar.gz
文件或.deb
文件
使用下面的代码,当检测到的系统是Linux时,我能够成功地创建.deb
文件,但是当为QNX编译时,它需要一个“.tar.gz”文件,我收到错误:
file cannot create directory: /data. Maybe need administrative
privileges.
系统的此命令不应也不能作为sudo
运行,即使尝试作为sudo make install
运行make命令,我也会收到与编译环境相关的错误(为QNX配置)
My CMakeList.txt代码:
set(CPACK\u ARCHIVE\u组件安装)
如果(${CMAKE\u CXX\u PLATFORM\u ID})匹配QNX)
消息(状态“QNX已找到”)
设置(CPACK_发生器“STGZ”)
else()
消息(状态“默认为Linux”)
设置(CPACK_发生器“DEB”)
endif()
安装(
目标二进制
目标“/数据/”
)
包括(注册会计师)
作为斯蒂芬·纽厄尔:
我猜您的
install
命令中的前导斜杠使cmake将其视为绝对目录。如果只使用数据
而不是/data/
,会发生什么情况
使用
数据
而不是/data/
解决了问题 我猜您的install
命令中的前导斜杠使cmake将其视为绝对目录。如果您只是使用数据
而不是/data/
,会发生什么情况?@StephenNewell就是这样谢谢:)