Линкер связывает правильный файл, но не может найти символы

0

Я играю с libav *. Я написал простую программу для открытия файла и вывода количества потоков, которые он имеет в нем, просто для того, чтобы мои ноги были влажными. Я связываюсь с avformat, avcodec и avutil. Тем не менее, я получаю неопределенные ссылочные ошибки из ld. Неопределенные ссылки - все функции libav *. Я взглянул на подробный вывод компоновщика и вижу, что он связывается с правильными библиотеками, и я использовал objdump для подтверждения того, что символы находятся в библиотеке, но ld все еще бросает неопределенные опорные ошибки.

  • 0
    размещение вашей ссылки и сообщений об ошибках не будет плохой идеей.
  • 0
    Плохое голосование за потенциально интересный вопрос, но плохо отформатированный и трудно воспроизводимый.
Теги:
linker
gcc
ld

1 ответ

2
Лучший ответ

Вы программируете в C++? В этом случае вам нужно добавить "extern" C "{...};".

Взгляните сюда: зачем нам использовать extern "C" {#include <foo.h>} в C++? и заметим, что libav * написан на C.

  • 0
    Полностью забыл, что не все библиотеки на основе C делают это за вас.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню