Как я могу сбросить символы в файле .la в Ubuntu Linux? - PullRequest
3 голосов
/ 01 июля 2010

Как я могу сбросить символы в .la файле в Ubuntu Linux?

Я получаю эту ошибку компоновки:

main.c:(.text+0xbfb): undefined reference to `Browser_new'

И я думаю, что мой main.c ссылается на libwebkit-1.0.la.Так как я могу узнать, имеет ли libwebkit-1.0.la символ Browser_new?

  CXXLD  libwebkit-1.0.la
  CCLD   Programs/GtkLauncher

1 Ответ

4 голосов
/ 01 июля 2010

Проблема может заключаться в том, что вы используете C, а libwebkit имеет символы C ++.Имена символов C ++ будут искажены по сравнению с тем, что вы можете увидеть во включаемых файлах.

В любом случае, чтобы ответить на вопрос: .la - это библиотека libtool.Обычно он указывает на файл .so:

$ grep dlname libwebkit-1.0.la
dlname='libwebkit-1.0.so'

А затем в файле .so можно использовать nm для отображения динамических символов:

$ nm -D libwebkit-1.0.so
...

Если это библиотека C ++,затем вы можете использовать флаг -C для разборки имен функций C ++.

$ nm -D -C libwebkit-1.0.so
...