Мне нужно удалить неиспользуемые функции из большого проекта C++. Прочитав некоторое время, я использовал эту ссылку: Как узнать, какие части кода никогда не используются?
Я компилирую на RedHat с помощью make-файлов. Я добавил в компилятор флаги:
-Wall -Wconversion -ffunction-sections -fdata-sections
и в компоновщик флаги:
-Wl,-rpath,--demangle,--gc-sections,--print-gc-sections
По какой-то раздражающей причине я получаю вывод после искажения даже после использования -- вариант демангл. Например:
/usr/bin/ld: Removing unused section '.text._ZN8TRACABLED0Ev' in file 'CMakeFiles/oded.dir/oded.cpp.o'
/usr/bin/ld: Removing unused section '.text._ZN8TRACABLED1Ev' in file 'CMakeFiles/oded.dir/oded.cpp.o'
Итак, у меня есть 6000 имен функций, которые мне нужно разобрать, и я не могу использовать extern C
.
Я могу написать скрипт для его разбора и использования c++filt, но я ищу решение, которое заставит компоновщик сам распарсить функцию!
Кто-нибудь знает, существует ли такое решение?