所以我从svn下载了FFmpeg。编译并安装到系统中。在/ usr / local中创建./lib和./include。一个包含,一个包含* .a文件形式的库。
我下载了eclipse Helios for C ++并创建了一个新的简单项目。我将ffmpeg标头包含在我的C ++文件中。在C / C ++的项目属性中构建设置我声明了ffmpeg libs(声明了库搜索路径)
我编写了一些从头文件中调用函数的简单代码。
但对于我使用的所有ffmpeg函数,它给了我eclipse的错误,没有看到ffmpeg。
所以我想知道 - 如何将ffmpeg libs连接到我的项目(或者可能有任何方法将ffmpeg编译成.a并且它可以与.so一起工作)?
答案 0 :(得分:3)
我在 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-&gt; properties-&gt; C / C ++ - &gt; Build-&gt; Settings- &gt; GCC C ++ - &gt;连接体 - &GT;库
我希望这对你有用
答案 1 :(得分:1)
您需要将它们与您的代码相关联。在make文件中使用-l和-L gcc命令行参数,或编辑Eclipse项目的属性(转到项目属性 - > C / C ++ - &gt; Build-&gt; Settings-&gt; GCC C ++ - &gt ;链接器 - &gt;库。
答案 2 :(得分:1)
如果您想要的包含和库分别位于/usr/local/include
和/usr/local/lib
,那么您似乎可以使用包含和库路径(这些目录通常位于默认搜索路径中)。
确定在指定要链接到的库时未使用lib...
,默认情况下会添加前缀,例如使用libabc.a
只需在项目设置的库列表中指定abc
。
答案 3 :(得分:0)
如果您收到编译错误(不是链接器错误),请确保libav *文件夹位于/usr/local/include
中,并且包含ffmpeg标头及其文件夹名称。
#include libavformat/avformat.h
#include libavcodec/avcodec.h
// ...
您必须将/usr/local/include
定义为包含目录,而不是内部的libav *文件夹。这是必需的,因为ffmpeg标题本身以这种方式引用其他标题。
答案 4 :(得分:0)