未使用のモジュールを出力ファイルに含めないように gcc/ld に指示できるかどうか知りたいです。
モジュールa.c
、b.c
およびがあるとしc.c
ます。a.c
とb.c
相互に依存しており、そのうちの 1 つに が含まれておりmain()
、何らかの理由で のどの部分c.c
も参照されていません。
gcc -c a.c
gcc -c b.c
gcc -c c.c
ライブラリにまとめてバンドルするc.c
と、出力に含まれないコードはありません。
ar rcs abc.a a.o b.o c.o
gcc abc.a
しかし、.o
ファイルを gcc に直接渡すと、 c.c
resp. c.o
含まれています。
gcc a.o b.o c.o
どうにかして、ライブラリに入れずに未使用のモジュールを除外するよう gcc に指示できますか?
私は AVR µC をプログラミングしており、ライブラリの作成を許可しない AVR Studio を使用していますが、ビルド構成によっては使用されていないソース ファイルを省略したいと考えています。