我想知道我是否可以告诉 gcc/ld 省略未使用的模块,不要将其放入输出文件中。
假设我有模块a.c
,b.c
和c.c
。a.c
并且b.c
相互依赖,其中一个包含 a main()
,并且由于任何原因,c.c
都没有引用 of 的任何部分。
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,它不允许创建库,但想省略未使用的源文件,具体取决于构建配置。