2

SFMLを使用するプロジェクトでは、チームメイトの部分をmakeでコンパイルしようとしています。彼のubuntuではすべてが正常に実行されていますが、私のDebianではすべてがうまくいきません。

libsfmlに必要なすべてのインクルードを/usr/ local / include /フォルダーに置き、libsfmlのすべての.soを/ usr / local /lib/に置きます。

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>
4

1 に答える 1

1

首都Sは確かに問題を示しています。coreutils ls情報ページから:

set-user-IDまたはset-group-IDビットが設定されているが、対応する実行可能ビットが設定されていない場合。

つまり、setgidビットはディレクトリに設定されますが(これにより、グループの所有権の継承が強制され、ここでは重要ではありません)、実行可能ビットは設定されません。ディレクトリの場合、これはディレクトリ内のファイルを検索する機能です。ルートだけがそのディレクトリ内のファイルを見ることができ、それはルートがそれを無視できるからです。誰かがディレクトリのモードをファイルにのみ使用するモードに設定しました。

chmod 2775 /usr/local/include/SFML

問題を修正する必要があります。(または755、従来のルートのみの権限を使用したい場合。Debianはstaffグループの使用から移行しています。)

于 2013-03-17T11:06:37.720 に答える