我正在为基于8051微控制器的图形LCD制作一个C静态库文件(.lib)。有一些功能和3种字体可以在编译之前选择(仅允许一种字体)。该库应包含一些不同的字体,例如:
#if defined FONT1
const uint8_t code font[size1] = { /* Font1 Data*/ }
#elif defined FONT2
const uint8_t code font[size2] = { /* Font2 Data*/ }
…
,最终用户可以通过在给定的“ .h”文件中定义一种字体来选择一种字体。当我测试时,不可能通过将上面的代码编写为库文件来实现此目的,只能使用一种明显的已定义字体进行编译。另一方面,出于内存考虑,一次加载所有3种字体(在最终应用程序中)效率不高。 有适当的方法吗?
答案 0 :(得分:0)
您可以将字体拆分到不同的源文件中。然后,每个源文件都将构建到一个单独的目标文件(translation unit)中,如果链接器足够好,它将丢弃包含未使用符号的目标文件。
如果未使用的目标文件被丢弃,则它们中的代码和数据当然将不属于最终链接的可执行文件。