Хотелось бы узнать, могу ли я сказать gcc / ld об исключении неиспользуемых модулей для помещения в выходной файл.
Предположим, у меня есть модули a.c
, b.c
и c.c
. a.c
и b.c
зависят друг от друга, один из них содержит 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
соответственно c.o
включено.
gcc a.o b.o c.o
Могу ли я, в любом случае, сказать gcc не использовать неиспользуемые модули, не помещая их в библиотеку?
Я программирую AVR µC и использую AVR Studio, которая не позволяет создавать библиотеки, но хотела бы опустить исходные файлы, которые не используются, в зависимости от конфигурации сборки.