Я хочу идентифицировать неиспользуемые файлы объектов в большом приложении C со многими библиотеками. С течением времени проект значительно вырос, и теперь я хочу искать библиотеки, которые больше не используются, поэтому я могу удалить их из файла зависимостей. Возможно ли с помощью gcc-линкера идентифицировать любой объект, который не используется?gcc linker получить список неиспользуемых объектов
Например, если я скомпилирую приложение с gcc, и, скажем, ни один из символов/функций библиотеки2 не используется. Есть ли способ получить информацию о том, какие объекты не связаны?
gcc library1.o library2.o main.o -o main.elf
Я знаю, что GCC имеет компилятор и компоновщика флаги для удаления неиспользуемых символов:
-fdata-sections -ffunction-sections -Wl,--gc-sections
Однако этот способ я не знаю, какие объекты были удалены НКУ. Было бы идеально, если gcc имеет возможность получить список объектов, которые не были связаны с приложением.
Просто для того, чтобы упомянуть: мне нужно это на объектном файле, а не на основе функции/символа!
Кто-нибудь знает такой вариант для gcc?
Таким образом, вы могли бы просто посмотреть, что '.o' файлы вы можете найти после компиляции и сравните с исходников,. Я не знаю точно, просто идея ... –
Взгляните на [этот ответ SO] (http://stackoverflow.com/a/4449936/3436922). Это может помочь. – LPs
@R. Ну, это так.Я уже использую флаги -fdata-sections -ffunction-sections -Wl, -gc-sections, которые удаляют неиспользуемый код. Однако таким образом я не могу идентифицировать объекты для удаления и их и убирать мою сборную систему – franz86