我有一个用g ++编译的可执行文件,它链接在大约50个静态库中(在一堆系统库之上)。我想知道这些库中正在使用哪些方法,或者更重要的是哪些方法永远不会被调用。
是否有提供此功能的工具和/或编译器标志?
答案 0 :(得分:0)
您可以在Linux \ UNIX中使用nm
工具(至少在使用-g编译时)
由于您只使用静态库,因此库中的参考方法将添加到您的可执行文件中
用法如:
nm <your executable with debug info>
你也可以尝试阅读手册页;
man nm
答案 1 :(得分:0)
不确定你究竟是什么意思,但是如果你想获得未被引用的函数,那么有一些编译器选项。
<强> -ffunction截面强> 会告诉编译器将每个函数放入obj文件中的自己的部分。
然后在链接时 - gc-sections 和 - print-gc-sections 将对未使用的部分(函数)进行垃圾收集,并列出结果。
您可能希望构建所有静态库以获得完整列表。