1

One of my company's Linux apps depends on a third-party library, distributed as a shared object (.so) file. We've been using it for two years with no complaints. However, they recently decided to distribute it as a static .a library. I didn't think this would be an issue, however I've hit a stumbling block I can't get past.

I've linked the libraries, however one of them outputs the error:

could not read symbols: No more archived files.

This is rather cryptic, and googling around for a few hours has gotten me nowhere. Development environment is Ubuntu 12.04 using Eclipse CDT. What does this linker error mean, and how do I go about linking the library?

eli
  • 311
  • 1
  • 2
  • 10
  • 1
    That archive might be corrupt. Try using readelf on it to get more info. Also see this: http://stackoverflow.com/questions/2765240/could-not-read-symbols-archive-has-no-index-run-ranlib-to-add-one – Peter L. Aug 09 '13 at 17:51
  • You might be onto something... get a "unable to read 0x(num) bytes of section headers" message in two of the objects. Not familiar with the insides of elf files, is this indicative of a corrupted file? – eli Aug 09 '13 at 19:05
  • It could be. Might want to ask the vendor to try linking a stub executable to it for sanity's sake. – Peter L. Aug 09 '13 at 19:35

0 Answers0