gpt4 book ai didi

linux -/usr/local/include/SFML 权限被拒绝

转载 作者:塔克拉玛干 更新时间:2023-11-03 01:37:15 24 4
gpt4 key购买 nike

在一个使用 SFML 的项目中,我试图通过 make 编译我的队友部分。在他的 ubuntu 上一切正常,但在我的 debian 上一切都出错了。

我将 libsfml 所需的所有 include 放在/usr/local/include/文件夹中,并将 libsfml 的所有 .so 放在/usr/local/lib/中

ls -l/usr/local/include : drw-rwSrw- 7 root 用户大小日期 SFML

不知道大写的S是不是问题的关键,以前没见过。在 sudo 上,一切正常。但是我不需要成为 root 来编译这样的项目。

有什么建议吗?

这是错误输出:

LibrarySFML.hpp:14:29: error: /usr/local/include/SFML/Graphics.hpp: Permission denied
LibrarySFML.hpp:15:27: error: /usr/local/include/SFML/System.hpp: Permission denied
LibrarySFML.hpp:16:27: error: /usr/local/include/SFML/Window.hpp: Permission denied

LibrarySFML.hpp 第 14-15-16 行:

#include <SFML/Graphics.hpp>
#include <SFML/System.hpp>
#include <SFML/Window.hpp>

最佳答案

大写的 S 确实表明了问题。来自 coreutils ls 信息页面:

If the set-user-ID or set-group-ID bit is set but the corresponding executable bit is not set.

这意味着在目录上设置了 setgid 位(这会强制继承组所有权并且在这里不感兴趣),但可执行位不是。对于目录,也就是在目录中查找文件的能力。只有 root 可以看到该目录中的文件,并且只能在那时因为 root 可以忽略它。有人将目录的模式设置为只应用于文件的模式。

chmod 2775 /usr/local/include/SFML

应该可以解决问题。 (或者 755 如果你想使用更传统的 root-only 权限;Debian 正在迁移,不再使用 staff 组。)

关于linux -/usr/local/include/SFML 权限被拒绝,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15412891/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com