Quote:
Originally Posted by darenw
I'm trying to compile a program using the bfd library. This is installed, both libbfd.so and libbfd.a exist in /usr/lib. The link command does have "-lbfd" and the main source compiles to a .o file just fine. Yet linking results in undefined reference to `bfd_openr' Readelf (and other means) verify that bfd_openr exists in the library.
|
The first thing I'd say is to double-check that you're not getting an error message like:
Code:
/usr/bin/ld: cannot find -lbfd
somewhere down the line.
Second, check that ld is finding the "correct" version of libbfd by passing "-Wl,-verbose" to gcc (i.e. tell it to pass the "-verbose" option to the linker) and have a look at where it finds libbfd - e.g. a successful hunt for -lasound on my system looks like:
Code:
...
attempt to open /usr/lib/gcc/i486-linux-gnu/4.4.1/libasound.so failed
attempt to open /usr/lib/gcc/i486-linux-gnu/4.4.1/libasound.a failed
attempt to open /usr/lib/gcc/i486-linux-gnu/4.4.1/libasound.so failed
attempt to open /usr/lib/gcc/i486-linux-gnu/4.4.1/libasound.a failed
attempt to open /usr/lib/gcc/i486-linux-gnu/4.4.1/../../../../lib/libasound.so succeeded
...
That might tell you if ld is finding an older version of libbfd.
John G