多くの C ファイルを含むディレクトリがあります。これらの C ファイルごとに、次の行を追加する必要があります#include config.h
。これを手動で行うのを避ける方法はありますか?
プリプロセッサにそれを行うように指示する適切な方法があるか、適切に構築されたフラグをリンカに渡す可能性があると考えています。ディレクトリ内のすべてのファイルを同じヘッダー ファイルに「含める」にはどうすればよいですか?
多くの C ファイルを含むディレクトリがあります。これらの C ファイルごとに、次の行を追加する必要があります#include config.h
。これを手動で行うのを避ける方法はありますか?
プリプロセッサにそれを行うように指示する適切な方法があるか、適切に構築されたフラグをリンカに渡す可能性があると考えています。ディレクトリ内のすべてのファイルを同じヘッダー ファイルに「含める」にはどうすればよいですか?
いずれかの-include
スイッチを使用
$ cat foo.c
int main(void) {
printf("%s\n", "ohai there o/");
return 0;
}
$ gcc -include stdio.h foo.c
または、そのインクルードを自動的に挿入するスクリプトを作成します
これらの例では、ファイルを編集し、ファイルの最初の行.c
にインクルードを追加しています。
bashシェル、GNU を想定sed
:
while read -r; do
sed -i '1i #include "config.h"' "$REPLY"
done < <(find /path/to/project/dir -type f -name "*.c")
または何かPOSIXで
find /path/to/project/dir -type f -name "*.c" | while read -r file; do
ed "$file" <<EOF
0a
#include "config.h"
.
wq
EOF
done