4

迷路からの最短ルートを見つける C++ プログラムを作成しようとしています。ただし、現在、メイクファイルを機能させるのに苦労しています。現在、私のメイクファイルには次のものが含まれています。

mazeIO : mazeIO.cpp maze.h
    g++ -g -Wall mazeIO.cpp maze.h -o mazeIO

プロジェクトにあるファイルは mazeIO.cpp と maze.h の 2 つだけです。コマンドラインで入力しています

make -f Makefile

そしてそれはうまくコンパイルされます。それから私はタイプしています

./mazeIO maze.txt

maze.txt は、ナビゲートしようとしている迷路の入力です。これを入力すると、次のエラーが表示されます。

bash: ./mazeIO: Permission denied

私はなぜなのか理解していない。助言がありますか?

4

2 に答える 2

5

これは簡単です。実行権限が必要です。

chmod +x mazeIO

他のユーザーが実行する必要がある場合は、chmod を使用することもできます。
man chmod は、他のユーザーが実行する必要がある場合に必要な数値を提供します。完全な実行権限、読み取り権限、書き込み権限を与えることには注意してください (chmod 777)

chmod 600 では実行可能になりません。

于 2013-09-04T15:10:04.967 に答える
2

x実行可能ファイルは、execute ( ) フラグが存在するため、Linux では実行可能ファイルとして知られています。あなたの「実行可能ファイル」にはそれがありません-読み取り(r)および書き込み(w)権限のみがあります。実行可能ファイルからアクセス許可を削除するか (たとえば、を使用chmod 600 mazeIO)、umask が奇妙です。umask は、新しいファイルに対するデフォルトのユーザー権限を制御します。デフォルトから変更すると、大混乱を招く可能性があります。デフォルトの umask は0022ほとんどのシステムで使用されます。何が起こるかわからない場合はそのままにしておくことをお勧めします。exec ビットが欠落している理由が他にわかりません。

于 2012-11-28T02:37:09.057 に答える