【问题标题】:FFMpeg sample programFFMpeg 示例程序
【发布时间】:2012-02-19 08:49:22
【问题描述】:

目前正在学习Martin BohmeTutorial Here的ffmpeg教程

我想使用 Code Block IDE 编译一个 ffmpeg 示例程序,但是它不能

#include <stdio.h>
#include <stdlib.h>

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

int main(int argc, char *argv[])
{
av_register_all();

    return 0;
}

请帮助我。如何编译它。我正在使用 Linux (Ubuntu)

【问题讨论】:

  • 你有什么问题?请编辑您的问题以添加错误等内容。
  • 编译器说找不到“libavcodec/avcodec.h”这是我的问题。或者如何编译Martine Bohme的示例程序的示例程序?

标签: c linux ubuntu ffmpeg


【解决方案1】:

你必须告诉编译器头文件和库文件在哪里。这是通过-I 标志来完成的,以告知哪些目录包含头文件,-L 来告知哪些目录包含库。您还需要-l 来告知要链接哪些库。

标志可以这样使用:

$ g++ -I/path/to/headers myprogram.cpp -L/path/to/libraries -lthelibrary

关于库的说明:在 Linux(和 UNIX 系统)上,它们是名称以“lib”开头并以扩展名“.a”或“.so”结尾的文件。当使用-l 标志指定库时,您 写这些。所以对于一个库文件“libfoo.a”,你只能使用-lfoo来链接它。

有关 gcc 和 g++ 选项的更多信息,请参阅http://gcc.gnu.org/onlinedocs/gcc/Invoking-GCC.html

编辑: 对于像 Code::Blocks 这样的 IDE,很可能有一些项目设置,您可以在其中添加包含和库目录以及链接库。检查“项目”菜单中的“设置”或“属性”选项。

Edit2:例如参见this FAQ 在哪里可以找到 Code::Blocks 中的链接器设置,预处理器设置应该就在附近。

【讨论】:

  • g++ -I /usr/local/include main.c -L /usr/local/lib -lavcodec -lavformat 说错误:'UINT64_C' 没有在这个范围内声明
  • @Glennascual This 问题包含一个关于如何解决它的代码-sn-p。
【解决方案2】:

您可以尝试以下命令在 Linux 中编译。

gss <program-name.c> 

【讨论】:

    【解决方案3】:

    对于像eclipse这样的IDE,请关注FFMPEG - Eclipse Setup Guide[Linux] official

    【讨论】:

    • 始终欢迎提供潜在解决方案的链接,但请add context around the link,以便您的其他用户知道它是什么以及为什么存在。始终引用重要链接中最相关的部分,以防目标站点无法访问或永久离线。考虑到仅仅是指向外部站点的链接是Why and how are some answers deleted? 的一个可能原因。
    猜你喜欢
    • 2015-07-22
    • 2011-02-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-12-04
    • 2014-04-23
    • 1970-01-01
    • 2015-05-22
    相关资源
    最近更新 更多