未使用のモジュールを出力ファイルに含めないように 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.cresp. c.o含まれています。
gcc a.o b.o c.o
どうにかして、ライブラリに入れずに未使用のモジュールを除外するよう gcc に指示できますか?
私は AVR µC をプログラミングしており、ライブラリの作成を許可しない AVR Studio を使用していますが、ビルド構成によっては使用されていないソース ファイルを省略したいと考えています。