I'm programming in FORTRAN and C on an SGI running Irix 6.5, but this should be applicable to all Unix-like systems. How do I find which library I need to link to my program when I get an "unresolved text symbol" link error? Here's an example of what I'm seeing from the linker:
ld32: ERROR 33 Unresolved text symbol "ortho2_" -- first referenced by ./libfoo.a
Do I just have to know which libraries are required, or is there some tool or command that can help me figure this out?
You can use the nm
command to list the dynamic symbols from a shared library:
nm -D /lib/libc.so.6
and then grep
for the symbol you are looking for. Omit the -D for static libraries. You can use this in a loop or with xargs to scan multiple libraries.
I usually just use google (assuming the symbol is from a publicly available library).