Ошибка компоновки при попытке собрать исходный код ffmpeg для создания независимой библиотеки - PullRequest
0 голосов
/ 11 января 2011

Я пытаюсь собрать исходный код ffmpeg на машине Linux Ubuntu 10.1 с gcc версии 4.4.3.

Я заинтересован в том, чтобы сделать функцию av_transcode () в ffmpeg.c доступной ", поэтому я прокомментировалосновная функция ffmpeg.c.

gcc $ (LD_LIBRARY_PATHS) -Wl, -Bsymbolic -Wl, -E -o ffmpeg_g ffmpeg.o cmdutils.o -lavdevice -lavformat -lavcodec -lswscale -lavutil -lz-pthread -lm -lx264 -lm -lasound -lasound -lasound -ldl

Я получаю ниже ссылки ошибок

+++++++++++++++++++++++++++++++++++++++++++++++++ /usr/lib/gcc/x86_64-linux-gnu/4.4.3/../../../../lib/crt1.o: В функции _start': (.text+0x20): undefined reference to main 'collect2: ld вернул 1 состояние выхода make: * [ffmpeg_g] Ошибка 1 ++++++++++++++++++++++++++++++++++++++++++++++++++

Такое же поведение наблюдается и на моем MacOS (снежный барс).

ТАК, ставя вопрос вкратце: Как я могу сказать компилятору gcc, что я создаю этот исходный код для создания библиотеки?

1 Ответ

0 голосов
/ 11 января 2011

gcc -shared если вы пытаетесь создать общую библиотеку, в противном случае просто используйте ar для объединения скомпилированных объектов.

Но вы действительно должны прочитать Как писать общие библиотеки (PDF) и много другой документации, чтобы вы понимали, почему вышеприведенное иногда может потерпеть неудачу без -fPIC и т. Д.

...