我需要從大型C++項目中刪除未使用的函數。閱讀了一段時間後,我用這個鏈接:How can I know which parts in the code are never used?解決方法名稱無需C++ filt
我使用makefiles在RedHat上編譯。我加入到編譯器標誌:
-Wall -Wconversion -ffunction截面-fdata截面
和鏈接標誌:
-Wl,-rpath,--demangle, - GC -sections, - print -gc-sections
對於一些令人討厭的原因,我收到後的輸出,即使在使用--demangle選項後。例如:
/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函數名,我需要unmangle,我不能用extern C
。
我可以編寫一個腳本來解析它並使用C++ filt,但是我正在尋找一種解決方案,它將使鏈接器自行取消功能!
任何人都知道這樣的解決方案是否存在?
謝謝!似乎我會去一個腳本(: – kurdt