我使用dnf安装了ffmpeg-devel
,但是当包含"libavcodec/avcodec.h"
时,g ++告诉我
a.cpp:1:10: fatal error: libavcodec/avcodec.h: No such file or directory
#include "libavcodec/avcodec.h"
^~~~~~~~~~~~~~~~~~~~~~
compilation terminated.
我的源文件是(a.cpp)
#include "libavcodec/avcodec.h"
int main(int argc, char* argv[])
{
return 0;
}
我看到/usr/include/ffmpeg/libavcodec/avcodec.h
,所以我将名称更改为ffmpeg/libavcodec/avcodec.h
,但后来又说
/usr/include/ffmpeg/libavcodec/avcodec.h:31:10: fatal error: libavutil/samplefmt.h: No such file or directory
#include "libavutil/samplefmt.h"
^~~~~~~~~~~~~~~~~~~~~~~
compilation terminated.
我应该怎样做才能确保所有标头都包含在内?
答案 0 :(得分:0)
在-I
中使用g++
在包含路径中添加/usr/include/ffmpeg/
可解决问题。
最终的计划是
#include "libavcodec/avcodec.h"
int main(int argc, char* argv[])
{
return 0;
}
编译它的命令是g++ a.cpp -I /usr/include/ffmpeg
答案 1 :(得分:0)
这个Makefile
是我在使用ffmpeg库进行/ v编码的项目中使用的。提取的剪辑如下:
LIBAV_PATH = /path/to/ffmpeg/lib/pkgconfig/
CXXFLAGS += `PKG_CONFIG_PATH=$(LIBAV_PATH) pkg-config --cflags $(PKG_DEPS)`
LDFLAGS += `PKG_CONFIG_PATH=$(LIBAV_PATH) pkg-config --libs $(PKG_DEPS)`
$(TARGET): $(OBJECTS_C) $(OBJECTS_CPP)
@echo "LD\t" $@
$(CXX) -o $@ $^ $(WFLAGS) $(OFLAGS) $(CXXFLAGS) $(LDFLAGS)
%.o: %.cpp
@echo "CXX\t" $@
$(CXX) $(WFLAGS) $(OFLAGS) $(CXXFLAGS) -c $< -o $@
顺便说一句,你可以使用这种格式包括:
#include <libavformat/avformat.h>
希望有所帮助。