C 为什么我们找不到实际存在的头文件?
我是一名C语言初学者,我遇到了一个问题,找不到头文件,但事实上,这些头文件都在当前文件中,我在网上看到了一些方法例如:都是添加-I选项可以解决这个问题,但我很好奇,为什么它找不到自己,只能依靠-I选项 包含路径: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
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.