C++ gcc:使用另一个目录中的函数

C++ gcc:使用另一个目录中的函数,c++,c,gcc,C++,C,Gcc,我想使用另一个目录中的函数。所以我把这条线放在上面 #include "~/ffmpeg/include/libavcodec/avcodec.h" 然后跑 gcc filename.c 得到这个错误 error: avcodec.h: No such file or directory 拼写正确,文件存在。为什么编译器认为文件不存在?您需要告诉gcc include目录在哪里使用-I,共享库在哪里使用-L gcc-I~/ffmpeg/include-L~/ffmpeg/lib file

我想使用另一个目录中的函数。所以我把这条线放在上面

#include "~/ffmpeg/include/libavcodec/avcodec.h"
然后跑

 gcc filename.c
得到这个错误

error: avcodec.h: No such file or directory

拼写正确,文件存在。为什么编译器认为文件不存在?

您需要告诉gcc include目录在哪里使用-I,共享库在哪里使用-L

gcc-I~/ffmpeg/include-L~/ffmpeg/lib filename.c

将include更改为


#包括“libavcodec/avcodec.h”

这样做的首选方法是将以下内容放在代码中,这样代码就不必仅仅因为标头位于不同的目录中而更改:

#include <avcodec.h>
#包括
然后在编译时添加开关-I
gcc -I/home/<username>/ffmpeg/include/libavcodec
gcc-I/home//ffmpeg/include/libavcodec
最好使用标题的完整路径

#include "~/ffmpeg/include/libavcodec/avcodec.h"
正在使用~这是仅用于KSH和BASH的主标识。 您需要使用完整/相对路径作为包含。

使用:

#include <avcodec.h>    /* NOT "avcodec.h" */
如果使用
-I
,请使用尖括号;如果要基于包含
#include
的文件的路径进行包含,请使用引号

我将使用:

#include <libavcodec/avcodec.h>

使用绝对路径测试是否可以找到文件怎么样?这些都不是调用任何函数。您正在包括一个文件。就这些。:)请不要将“后续”问题作为编辑发布。问一个新问题。应该注意的是,这是一个大写的
I
,而不是它给我的“l”:错误:libavcodec/avcodec.h:没有这样的文件或目录给我这个。错误:avcodec.h:没有这样的文件或目录#include工作得像个符咒!没有给我任何错误!伟大的祝你的项目好运。
#include <libavcodec/avcodec.h>
$ gcc -I$HOME/ffmpeg/include ...