是否从C构建中排除未引用的函数?

是否从C构建中排除未引用的函数?,c,build,static-linking,C,Build,Static Linking,我用C语言为嵌入式处理器编写固件,处理器闪存中的代码空间有限,我正试图减少使用的空间量,我注意到库(我编写的)中未使用的函数仍然包含在构建中。是否有一种标准的方法可以在不从库中删除这些函数的情况下排除从构建中从未引用过的库函数?我相信答案如下: 不过,如果您不打算使用您编写的库中的某些函数,那么最好的选择可能是完全删除它们?这将取决于您针对任何微处理器平台提供的工具集。即使有一个标准的方法,他们也需要遵守它。多个项目使用同一个库,因此使用库的目的是,有些项目使用函数,有些项目不使用函数。不幸的是

我用C语言为嵌入式处理器编写固件,处理器闪存中的代码空间有限,我正试图减少使用的空间量,我注意到库(我编写的)中未使用的函数仍然包含在构建中。是否有一种标准的方法可以在不从库中删除这些函数的情况下排除从构建中从未引用过的库函数?

我相信答案如下:


不过,如果您不打算使用您编写的库中的某些函数,那么最好的选择可能是完全删除它们?

这将取决于您针对任何微处理器平台提供的工具集。即使有一个标准的方法,他们也需要遵守它。多个项目使用同一个库,因此使用库的目的是,有些项目使用函数,有些项目不使用函数。不幸的是,所有这些答案都适用于GCC,我使用的是德克萨斯仪器公司专有的IDE,称为Code Composer Studio,无论如何,谢谢,看起来这是一个特定于平台的问题,我将尝试再次询问指定的问题。实际上,重要的是编译器,而不是IDE。就我所记得的,CCS可以使用GCC工具链,而不仅仅是TI编译器(它基于Eclipse,所以它非常灵活)。因此,作为一个选项,您可以考虑移动到GCC。若它不合适——那个么请尝试阅读您使用的编译器的帮助,并找到类似于我提供的链接中提到的GCC标志的内容。对于CCS v3是这样吗?我知道他们的新版本是基于Eclipse的,但我认为这是从v4开始的。无论如何,谢谢,虽然转移到GCC可能不是一个选项,但至少现在我有了找到答案的线索(查看编译器和链接器选项)。