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

时间:2013-03-14 15:06:05

标签: linux makefile debian sfml

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

我把/ usr / local / include /文件夹中的libsfml所需的所有包含以及/ usr / local / lib /

上的libsfml的所有.so

ls -l /usr/local/include : drw-rwSrw- 7 root User size date 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>

1 个答案:

答案 0 :(得分:0)

首都S确实表明了问题。来自coreutils ls信息页面:

  

如果设置了set-user-ID或set-group-ID位,但是   相应的可执行位未设置。

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

chmod 2775 /usr/local/include/SFML

应该解决问题。 (或755如果您想使用更传统的仅限root权限; Debian正在远离使用staff组。)