C 不编译ffmpeg

C 不编译ffmpeg,c,gcc,ffmpeg,C,Gcc,Ffmpeg,翻译的 我有个问题。当我试图编译一个使用gcc连接了h文件ffmpeg的文件时,我得到一个错误,代码中ffmpeg被错误地写入了include,这意味着该文件在当前目录中,尽管它应该在下一个目录中。如何修复它 在我的C文件中包括: #include "libavcodec/avcodec.h" #include "libavformat/avformat.h" #include "libswscale/swscale.h" 错误: D:\gcc\bin>gcc -o a a.c -lav

翻译的

我有个问题。当我试图编译一个使用gcc连接了h文件ffmpeg的文件时,我得到一个错误,代码中ffmpeg被错误地写入了include,这意味着该文件在当前目录中,尽管它应该在下一个目录中。如何修复它

在我的C文件中包括:

#include "libavcodec/avcodec.h"
#include "libavformat/avformat.h"
#include "libswscale/swscale.h"
错误:

D:\gcc\bin>gcc -o a a.c -lavutil -lavformat -lavcodec -lz -
lavutil -lm
In file included from a.c:3:0: libavcodec/avcodec.h:31:33: 
fatal error: libavutil/samplefmt.h: No such file or directory 
#include "libavutil/samplefmt.h"
^
compilation terminated.
我的答覆是:

我只能通过修改源代码来解决这个问题。首先,我添加了libavutil/avconfig.h文件,其中包含以下内容:

  #ifndef AVUTIL_AVCONFIG_H
  #define AVUTIL_AVCONFIG_H
  #define AV_HAVE_BIGENDIAN 0
  #define AV_HAVE_FAST_UNALIGNED 0
  #endif

然后,如果在目录和文件(libavutil/avutil)参与的地方看到错误,我会在那里添加“./”,因为在这种情况下,目录位于导致错误的文件(../libavutil/avutil.h)旁边。在另一种情况下,如果此文件应该在内部(仅当目录名与当前目录名(libavutil/avutil.h)匹配时),则您可以只保留文件名(avutil.h),也可以添加“./”,两者之间的差异不会被忽略。这样的操作需要重复大约20次,直到所有头文件中的错误消失。之后,您可以安全地编译ffmpeg,而无需专门知识和补丁。在中文网站上找到了avconfig.h的代码。

您的“compile”语句缺少头文件的位置。建议:

编译/链接语句应类似于:

gcc -o a a.c -I./libavutil   -lavutil -lavformat -lavcodec -lz -lavutil -lm

警告:我编写了
-I
参数,就好像当前/工作目录包含
libavutil
作为子目录一样。如果这不正确,则需要调整该参数。

您也可以检查“我不明白”中的任何内容。有什么问题?我有窗户,救命!如何用gcc编译这个?这对我没有帮助。I尝试-I./libavutil,-I./libavcodec,-I./libavformat。为什么我在文件avcodec.h中看到错误?编辑此文件并修复错误的目录?或者什么???您可以从
-I./libavutil,-I./libavcodec,-I./libavformat
开始,这是不正确的,参数sgcc-o a a a.c-I./libavutil-I./libavcodec-I./libavformat-lavutil-lavformat-lavcodec-lz之间没有逗号没有帮助。如何修复依赖关系?关于:
-lavutil-lavformat-lavcodec
(假设这些是子目录和库名称的缩写)`-L./avutil-lavutil-L./avformat-lavformat-L./avcodec-lavcodec`