There are a handful of related SO questions/answers but none of them seem to answer what I'm looking for. here, and here
I have some source that if I compile on Windows as a DLL I can analyze the DLL with Dependency Walker and see very clearly all the functions that I exported with extern "C"
. However, if I cross-compile the same source for Linux and use the methods referenced above I cannot find any of the functions that I exported in the ocean of information dumped out. Searching the output for strings with the names of the exported functions confirms that they are not listed.
Some of the methods I've tried include,
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...
None of these methods list a single function that I've exported. Is it not possible to reproduce the clean list of exported functions that a Windows DLL exports in a Linux shared library when built from the same source? Even a massive dump list that included the exported functions could work but I can't even get that.
Clearly I'm missing something here... thanks in advance.