определение выборочной переменной в статической библиотеке C - PullRequest
0 голосов
/ 11 сентября 2018

Я создаю файл статической библиотеки C (.lib) для графического ЖК-дисплея на основе микроконтроллера 8051.Есть несколько функций и 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 шрифта одновременно (в конечном приложении) из-за проблем с памятью.Есть ли правильный способ сделать это?

1 Ответ

0 голосов
/ 11 сентября 2018

Вы можете разделить шрифты в разных исходных файлах. Каждый исходный файл будет затем встроен в отдельный объектный файл ( единица перевода ), и, если ваш компоновщик достаточно хорош, он будет отбрасывать объектные файлы, содержащие неиспользуемые символы.

Если неиспользуемые объектные файлы отбрасываются, то они кодируют и данные в них, конечно, не будут частью окончательного связанного исполняемого файла.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...