2013-03-14 45 views
1

在一個使用SFML的項目中,我試圖通過make編譯我的隊友部分。所有在他的Ubuntu上都運行良好,但是在我的debian上都出錯了。/usr/local/include/SFML premission denied

我把所有的包括通過在libsfml需要在/ usr /本地/包括/文件夾和libsfml對在/ usr/local/lib目錄/

ls -l /usr/local/include : drw-rwSrw- 7 root User size date SFML

我所有的.so不知道大寫字母S是否是問題的關鍵,我以前從未見過。 關於sudo使所有工作正常。但我不應該成爲編譯這樣一個項目的根源。

有什麼建議嗎?

以下是錯誤輸出:

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> 

回答

0

資本S確實表明問題。從LS coreutils的信息頁面:

如果設置了設置用戶ID或設置組ID位,但 對應的可執行位沒有設置。

這意味着setgid位設置在目錄(強制繼承組所有權,這裏沒有什麼有趣),但可執行位不是。對於目錄,這是查找目錄中的文件的能力。只有root可以看到該目錄中的文件,只有root才能忽略該文件。有人將目錄的模式設置爲只能用於文件的模式。

chmod 2775 /usr/local/include/SFML 

應該解決這個問題。 (或者如果您想使用更傳統的純root權限,則使用755; Debian正在遷移使用staff組。)

相關問題