Я пытаюсь создать перемещаемый двоичный файл для встроенной системы, которая включает в себя только некоторые библиотеки. Он не будет содержать исходный файл, только библиотеки будут связаны в перемещаемый файл следующим образом:
ld -r -o <binary_name> --whole-archive <list of libraries>
Если я не использую опцию --whole-archive, то Полученный двоичный файл не содержит никаких символов, потому что я не связываю никакие объектные файлы, которые будут использовать символы. Итак, я использую --whole-архив, и бинарный файл успешно создан.
Теперь я хочу уменьшить размер двоичного файла. У меня есть только несколько приложений на моей встроенной системе, и поэтому я точно знаю, какие символы из списка библиотек будут использоваться моими приложениями. Итак, при связывании я хочу включить только этот набор символов в окончательный двоичный файл.
Например, предположим, что я пытаюсь связать lib c в перемещаемый двоичный файл. И предположим, мое приложение будет использовать только символ printf из lib c, тогда я хочу, чтобы мой перемещаемый двоичный файл содержал только printf и любые символы, используемые printf.
Есть ли способ достичь этого?