【问题标题】:Linux, Eclipse C++, how to connect ffmpeg libs to your project?Linux,Eclipse C++,如何将 ffmpeg 库连接到您的项目?
【发布时间】:2023-03-11 04:29:01
【问题描述】:

所以我从 svn 下载了 FFmpeg。编译并安装到系统中。在 /usr/local 中,它创建了 ./lib 和 ./include。一种带有包含文件,另一种带有 *.a 文件形式的库。

我为 C++ 下载了 eclipse Helios 并创建了新的简单项目。我将 ffmpeg 标头包含在我的 C++ 文件中。在 C/C++Build 的项目属性中,我在设置中声明了 ffmpeg 库(声明了库搜索路径)

我写了一些简单的代码,从头文件中调用函数。

但是对于我使用的所有 ffmpeg 函数,它给了我 eclipse 看不到 ffmpeg 的错误。

所以我想知道 - 如何将 ffmpeg 库连接到我的项目(或者可能有任何方法可以将 ffmpeg 编译成 .a 并且可以与 .so 一起使用)?

【问题讨论】:

    标签: c++ c linux eclipse ffmpeg


    【解决方案1】:

    您需要将它们与您的代码相关联。在 make 文件中使用 -l 和 -L gcc 命令行参数,或编辑 Eclipse 项目的属性(转到项目属性->C/C++->Build->Settings->GCC C++-> Linker->Libraries .

    【讨论】:

      【解决方案2】:

      如果您想要的包含和库分别位于 /usr/local/include/usr/local/lib 中,则似乎您已被包含和库路径覆盖(这些目录通常位于默认搜索路径中)。

      确认您在指定要链接的库时没有使用lib...,默认情况下这是预先设置的,例如要使用libabc.a,只需在项目设置的库列表中指定abc

      【讨论】:

        【解决方案3】:

        如果您遇到编译错误(不是链接器错误),请确保 libav* 文件夹位于 /usr/local/include 中,并且包含 ffmpeg 标头及其文件夹名称。

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

        您必须将/usr/local/include 定义为包含目录,而不是其中的 libav* 文件夹。这是必需的,因为 ffmpeg 标头本身以这种方式引用其他标头。

        【讨论】:

          【解决方案4】:
          1. 这取决于平台。
          2. 您必须使用所有正确的标志 mingw/或 cygwin 正确配置 ffmpeg 库。你会得到 .a 可以被 eclipse 识别的文件。
          3. 正如 littleadv 所说,您必须配置 ffmeg 库的路径。在项目中 -> 构建属性 - 包含(ffmpeg 文件夹和您的 mingw/cygwin 本地包含)和链接器设置 avformat avcodec avfilter avdevice swscale postproc。
          4. 不要忘记在您的操作系统中设置路径变量。 Eclipse 采用了这个。路径应指向 lib 并包含 /local mingw/cygwin。

          【讨论】:

            【解决方案5】:

            我在 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++- > 链接器->库

            我希望这对你有用

            【讨论】:

              猜你喜欢
              • 1970-01-01
              • 2013-01-20
              • 2021-08-06
              • 1970-01-01
              • 2017-03-16
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 2012-10-16
              相关资源
              最近更新 更多