Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/c/58.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C 为什么我们找不到实际存在的头文件?_C_Linux_Ffmpeg - Fatal编程技术网

C 为什么我们找不到实际存在的头文件?

C 为什么我们找不到实际存在的头文件?,c,linux,ffmpeg,C,Linux,Ffmpeg,我是一名C语言初学者,我遇到了一个问题,找不到头文件,但事实上,这些头文件都在当前文件中,我在网上看到了一些方法例如:都是添加-I选项可以解决这个问题,但我很好奇,为什么它找不到自己,只能依靠-I选项 包含路径: ls . include test_ffmpeg.c ls include/libavcodec/ avcodec.h avfft.h dirac.h dxva2.h vaapi.h vdpau.h videotoolbox.h xvmc.h avd

我是一名C语言初学者,我遇到了一个问题,找不到头文件,但事实上,这些头文件都在当前文件中,我在网上看到了一些方法例如:都是添加-I选项可以解决这个问题,但我很好奇,为什么它找不到自己,只能依靠-I选项

包含路径:

ls .
include  test_ffmpeg.c
ls include/libavcodec/
avcodec.h  avfft.h    dirac.h       dxva2.h  vaapi.h  vdpau.h    videotoolbox.h   xvmc.h
avdct.h    d3d11va.h  dv_profile.h  qsv.h    vda.h    version.h  vorbis_parser.h
源树:

root
 |-----test_ffmpeg.c 
 |-----include 
      
代码:

发生了一个致命错误:

test_ffmpeg.c:3:10: fatal error: ./include/libavcode/avcodec.h: No such file or directory
#include "./include/libavcode/avcodec.h"
      ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
compilation terminated.

include语句提到include/libavcode,但存在的路径是include/libavcodec


添加一个c,您应该会看到不同。

Include与包含的源文件相对。添加一点信息,我的源文件和头文件是同一个目录。
gcc test_ffmpeg.c  -lavcodec -lavdevice -lavfilter -lavformat -lavutil
test_ffmpeg.c:3:10: fatal error: ./include/libavcode/avcodec.h: No such file or directory
#include "./include/libavcode/avcodec.h"
      ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
compilation terminated.