デフォルトでは、「make」で生成されたファイルには実行権限は付与されません。

デフォルトでは、「make」で生成されたファイルには実行権限は付与されません。

プロジェクトをビルドしようとしていますが、このコマンドを使用するとmake次のエラーが発生します。

/bin/sh: line 4: .deps/ipset_bitmap_ipmac.Tpo: Permission denied
make[2]: *** [ipset_bitmap_ipmac.lo] Error 126

.deps/ipset_bitmap_ipmac.Tpoファイルは、makeビルド中に-rw-r--r--権限を使用して作成されます。 xはありません。ところで、makeファイルをすぐに実行したいのですが失敗します。

ファイルに移動して実行権限を手動で追加してから再実行すると、次のファイルに達するとすぐにコマンドが再びクラッシュしますmakemake私の唯一の選択は、chmodすべての新しいファイルを維持することです。

私の質問はなぜmake+ xなしで新しいファイルが生成されるのですか?

注:私はCentOS5を使用していますが、umask -Su = rwx、g = rx、o = rxが返されます。sudoこれはまったく役に立ちません。

ベストアンサー1

このような名前を使用すると、.deps/ipset_bitmap_ipmac.Tpoファイルを実行できない可能性があります。

ここで何が起こるのかは、Makefileに次のような行があるということです。

$(SOME_VARIABLE) .deps/ipset_bitmap_ipmac.Tpo

またはそれ以上の可能性が高い

$(SOME_VARIABLE) $(ANOTHER_VARIABLE)

ここでの値ANOTHER_VARIABLE.deps/ipset_bitmap_ipmac.Tpo、またはそのバリアントです。SOME_VARIABLE変数(プログラム名でなければなりません)は、makefileまたはそれを生成したプログラムのバグのために定義されていないか、コンピュータにサポートされていない設定があるため定義されていません。

ビルドするプロジェクトが何であるか、どこからインポートされたか、どのように解凍されたか、どのように構成されたか、どのビルドコマンドを実行したかを教えてください。

おすすめ記事