ソースファイルfoo.cとヘッダーファイルbar.hがあります。他のヘッダーファイルを展開せずmacros
にbar.hを展開するにはどうすればよいですか?macros
$ cat foo.c
#include <stdio.h>
#include "bar.h"
int main()
{
#ifdef BAR_FUNC
printf("bar func\n");
#else
printf("foo func\n");
#endif
return 0;
}
$ cat bar.h
#define BAR_FUNC 1
私が欲しいのは:
$ EXPAND_MAGIC foo.c
#include <stdio.h>
int main()
{
printf("bar func\n");
return 0;
}
を使えば`gcc -E
伸び<stdio.h>
ます。しかし、 bar.hでマクロを展開したいだけです。それを行うgccのオプションはありますか?そうでない場合、そのような前処理を行うことができる他のツールはありますか?
更新: 上記のfoo.c/bar.hは単なる例です。実際には、bar.h で定義された数百のマクロがあります (かなり大きなプロジェクトで autoconf によって生成された config.h を考慮してください)。そして、私が望むのは、これらのマクロをすべて (およびのみ) 10K を超えるソース ファイルに展開することです。助言がありますか?