Linux, Eclipse C ++, как подключить библиотеку ffmpeg к вашему проекту? - PullRequest
2 голосов
/ 21 февраля 2011

Итак, я скачал FFmpeg с SVN.Скомпилировано и установлено в систему.в / usr / local он создал ./lib и ./include.один с включениями, а другой с библиотеками в виде * .a файлов.

Я скачал eclipse Helios для C ++ и создал новый простой проект.Я включил заголовки ffmpeg в мой файл C ++.в свойствах проекта в C / C ++. Построить в настройках я объявил ffmpeg libs (был объявлен путь поиска в библиотеке)

Я написал простой код, который вызывает функции из заголовков.

Но для всех функций ffmpeg, которые я использовал, он выдавал ошибки из-за затмения, не видящего ffmpeg.

Поэтому мне интересно - как подключить библиотеки ffmpeg к моему проекту (или, может быть, есть какой-тоскомпилировать ffmpeg не в .a и он будет работать с .so)?

Ответы [ 5 ]

3 голосов
/ 16 июня 2012

У меня была такая же проблема на моем ubuntu 12.04 , и я исправил ее, скомпилировав ffmpeg и x264 следующим образом: я удалил папки ffmpeg и x264, а затем набрал это в терминале:

sudo apt-get remove ffmpeg x264
sudo apt-get autoremove

и затем

sudo apt-get update
sudo apt-get upgrade

, затем

sudo apt-get install make automake g++ bzip2 python unzip patch subversion ruby build-essential git-core checkinstall yasm texi2html libfaac-dev libmp3lame-dev libopencore-amrnb-dev libopencore-amrwb-dev libsdl1.2-dev libtheora-dev libvdpau-dev libvorbis-dev libvpx-dev libx11-dev libxfixes-dev libxvidcore-dev zlib1g-dev

установка x264

sudo git clone git://git.videolan.org/x264.git
cd x264
sudo ./configure --enable-shared --prefix=/usr/local
sudo make
sudo make install
cd ..

установка libvpx

sudo wget http://webm.googlecode.com/files/libvpx-v0.9.7-p1.tar.bz2
sudo tar xvjf libvpx-v0.9.7-p1.tar.bz2
cd libvpx-v0.9.7-p1
sudo ./configure --enable-shared --prefix=/usr/local
sudo make
sudo make install
cd ..

проверить, содержит ли /etc/ld.so.conf строки /usr/lib и /usr/local/lib.если нет, то добавьте их и сохраните

, затем запустите

sudo ldconfig

, установив ffmpeg

sudo wget http://ffmpeg.org/releases/ffmpeg-0.8.10.tar.bz2
sudo tar xvjf ffmpeg-0.8.10.tar.bz2
cd ffmpeg-0.8.10
./configure --enable-gpl --enable-version3 --enable-nonfree --enable-postproc --enable-libfaac --enable-libmp3lame --enable-libopencore-amrnb --enable-libopencore-amrwb --enable-libtheora --enable-libvorbis --enable-libvpx --enable-libx264 --enable-libxvid --enable-shared --prefix=/usr/local
sudo make
sudo make install
cd ..
sudo ldconfig

, в свой проект вы должны включить заголовкитаким образом:

#include<libavformat/avformat.h>
#include<libavcodec/avcodec.h>

В eclipse вы должны добавить библиотеки ffmpeg в свой проект: avutil, avformat, avcodec, m, z ..., перейдя в project-> properties-> C / C ++ -> Build-> Settings-> GCC C ++ -> Linker-> Libraries

Надеюсь, это сработает для вас

1 голос
/ 22 февраля 2011

, если нужные файлы включений и библиотек находятся в /usr/local/include и /usr/local/lib соответственно, кажется, что вы накрыты путями включения и библиотек (эти каталоги обычно находятся в пути поиска по умолчанию).

Убедитесь, что вы не использовали lib... при указании библиотеки, на которую хотите связать, по умолчанию к ней добавляется, например, для использования libabc.a просто укажите abc в списке библиотек настроек проекта.

1 голос
/ 22 февраля 2011

Вам необходимо связать их с вашим кодом.Используйте параметры командной строки -l и -L gcc в файле make или измените свойства вашего проекта Eclipse (перейдите в свойства проекта-> C / C ++ -> Build-> Settings-> GCC C ++ -> Linker-> Libraries.

0 голосов
/ 18 мая 2011
  1. Это зависит от платформы.
  2. Вы должны правильно настроить библиотеки ffmpeg со всеми правильными флагами mingw / или cygwin. вы получите файлы .a, распознаваемые по Eclipse.
  3. как говорит littleadv, вы должны настроить путь к библиотекам ffmeg. в проекте -> свойства сборки - включите (папка ffmpeg и ваше локальное включение mingw / cygwin) и настройки компоновщика avformat avcodec avfilter avdevice swscale postproc.
  4. Не забудьте установить переменную пути в вашей ОС. Затмение принимает это. Путь должен указывать на lib и включать / local mingw / cygwin.
0 голосов
/ 25 февраля 2011

Если вы получаете ошибки компиляции (не ошибки компоновщика), убедитесь, что папки libav * находятся в /usr/local/include, и вы включили заголовки ffmpeg с именами их папок.

#include libavformat/avformat.h 
#include libavcodec/avcodec.h
// ...

Вы должны определить /usr/local/include как включаемый каталог, а не папки libav * внутри. Это необходимо, потому что сами заголовки ffmpeg ссылаются на другие заголовки таким образом.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...