-1

現在のディレクトリのディレクトリである引数を取り、そのフォルダーを検索し、それらのフォルダー内の C ファイルをコンパイルする必要があります。私は Bash でシェル スクリプトを書き始めたばかりで、少し頭がいっぱいです。

これまで私が試したことには、find を使用してファイルを検索し、それを xargs にパイプしてコンパイルすることが含まれていましたが、testing.c がディレクトリではなかったというエラーが表示され続けました。

find ~/directory -name *.c | xargs gcc -o testing testing.c

また、ls -R を試して .c ファイルのフォルダーを検索しましたが、パスを引数として取得してから移動してコンパイルする方法がわかりませんか?

4

3 に答える 3

2
find ~/directory -type f -name "*.c" -print0 |
while IFS= read -r -d '' pathname; do
    gcc -o "${pathname%.c}" "$pathname"
done
于 2013-05-18T08:36:44.180 に答える
0

@shx2が示唆したように、make(または他のビルドシステム)を使用することが間違いなく最良のアプローチです。適切なビルド システムがなければ、ソース ツリー内のファイルをコンパイルする必要はありません。

于 2013-05-18T15:06:48.373 に答える