CMake安装目录权限

时间:2017-08-04 21:45:16

标签: eclipse cmake

我使用cmake(LLVM项目)构建了一个项目,并尝试通过发出以下命令来安装它:

$ cmake3 --build . --target install

如果我使用root运行它,那么没有问题,文件将安装在/ usr / local /目录下。

我的问题是我想使用普通用户安装项目。

我收到以下错误:

CMake Error at cmake_install.cmake:36 (file):
  file INSTALL cannot set permissions on "/usr/local/include/llvm"

我已将目录/ usr / local /的权限递归更改为777,并将其所有权更改为root:wheel并将我的普通用户添加到组轮。但我仍然无法将文件安装到/ usr / local /目录中。

主要问题是在Eclipse中构建项目,该项目在" Build Install"命令。

1 个答案:

答案 0 :(得分:1)

chmod 777 -R /是一个非常可怕的命令。这样就破坏了一个系统。

我使用的哲学是:

  • 如果在打包之前需要通过IDE进行部署以进行调试或测试,请在本地目录中本地部署。
  • 我只会在东西被打包(* .deb,*。rpm,*。tar.gz)的情况下,才将它们安装到我的系统中(在家之外),这样我就可以毫无问题地删除它。

对我来说,我这样做:

cmake $src
cmake --build . --target install -- DESTDIR=stage

这将配置我的项目,制作它,然后将其本地安装在构建目录中名为./stage的文件夹中。然后,我可以从./stage/usr/bin运行我的可执行文件。请注意,这仅在make是您的生成器时有效。

对它进行测试并感到很高兴后,我会将其打包并部署到我的系统或上传到存储库:

cpack
sudo dpkg -i <package>.deb