安装第三方库到指定目录出现问题

- Install configuration: ""
-- Up-to-date: /home/nvidia/CSF/install/lib/libCSF.a
-- Up-to-date: /home/nvidia/CSF/install/lib/libCSF.a
-- Up-to-date: /home/nvidia/CSF/install/include/c2cdist.h
-- Up-to-date: /home/nvidia/CSF/install/include/Cloth.h
-- Up-to-date: /home/nvidia/CSF/install/include/Constraint.h
-- Up-to-date: /home/nvidia/CSF/install/include/CSF.h
-- Up-to-date: /home/nvidia/CSF/install/include/Particle.h
-- Up-to-date: /home/nvidia/CSF/install/include/point_cloud.h
-- Up-to-date: /home/nvidia/CSF/install/include/Rasterization.h
-- Up-to-date: /home/nvidia/CSF/install/include/Vec3.h
-- Up-to-date: /home/nvidia/CSF/install/include/XYZReader.h
CMake Error at cmake_install.cmake:59 (file):
  file failed to open for writing (Permission denied):

    /home/nvidia/CSF/build/install_manifest.txt

从你的输出来看,安装过程似乎在尝试更新文件 /home/nvidia/CSF/build/install_manifest.txt 时遇到了权限问题。这个文件通常用于记录安装过程中创建或更新的文件列表,以便于后续的卸载或其他操作。

即使你之前设置了自定义的 CMAKE_INSTALL_PREFIX(如 /home/nvidia/CSF/install),install_manifest.txt 仍然会被写入构建目录(在这个例子中是 /home/nvidia/CSF/build)。如果你对构建目录没有写权限,就会遇到 "Permission denied" 错误。

解决方案

# 进入构建目录
cd /home/nvidia/CSF/build

# 确保你拥有该目录及其内容的所有权
sudo chown -R $USER:$USER .

# 或者直接赋予写权限(如果所有权已经是你的)
chmod u+w .

使用 sudo make install 来解决权限问题通常是可行的,但在这个特定情况下可能并不是最佳选择。从你的输出来看,安装路径(如 /home/nvidia/CSF/install/)和构建目录(如 /home/nvidia/CSF/build/)都在你的家目录下,理论上你应该对这些位置拥有完全的读写权限,因此不应该需要使用 sudo

为什么不应该使用 sudo make install

  1. 权限提升风险:使用 sudo 提升权限意味着将以 root 用户的身份执行命令。这不仅会授予对目标安装路径的写权限,还会授予对构建过程中的所有文件和操作的最高权限,这可能会带来安全风险。
  2. 文件所有权变化:用 sudo 安装后,生成的文件将由 root 用户拥有,这可能会导致后续你以普通用户身份尝试修改或删除这些文件时遇到权限问题。
  3. 不必要的复杂性:既然你已经设置了自定义的安装路径,并且这个路径在你的家目录下,应该不需要额外的权限提升。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值