如何列出linux共享库的导出函数?

时间:2017-12-15 00:25:07

标签: c++ export shared

有一些相关的SO问题/答案,但它们似乎都没有回答我正在寻找的问题。 hereand here

我有一些消息来源,如果我在Windows上编译为DLL,我可以使用Dependency Walker分析DLL,并使用extern "C"查看非常清楚所有导出的函数。但是,如果我为Linux交叉编译相同的源并使用上面提到的方法,我找不到任何我在转出的信息海洋中导出的函数。使用导出函数的名称在输出中搜索字符串,确认它们未列出。

我尝试过的一些方法包括

nm -C --defined-only -g libTest.so > out.txt
nm -D libTest.so > out.txt
nm -D --defined-only libTest.so > out.txt
nm -D --defined-only --demangled libTest.so > out.txt
objdump -s libTest.so > out.txt
objdump -t libTest.so > out.txt
objdump -T libTest.so > out.txt
etc...

这些方法都没有列出我导出的单个函数。 当从同一来源构建时,是否无法重现Windows DLL在Linux共享库中导出的导出函数的干净列表?即使是包含导出函数的大量转储列表也可以工作但我可以甚至不能那样。

显然我在这里遗漏了一些东西......先谢谢。

0 个答案:

没有答案