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

时间:2014-03-14 16:52:55

标签: c++ c gcc

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

#include "~/ffmpeg/include/libavcodec/avcodec.h"

然后跑

 gcc filename.c

并收到此错误

error: avcodec.h: No such file or directory

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

4 个答案:

答案 0 :(得分:3)

使用:

#include <avcodec.h>    /* NOT "avcodec.h" */

然后:

gcc -I/include/file/path/where/avcodec.h/lives

如果使用-I,请使用尖括号,如果要根据相对于包含#include的文件的路径进行包含,请使用引号。

我会用:

#include <libavcodec/avcodec.h>

$ gcc -I$HOME/ffmpeg/include ...

答案 1 :(得分:1)

#include "~/ffmpeg/include/libavcodec/avcodec.h"

正在使用〜这是KSH和BASH的HOME标识。 您需要使用完整/相对路径作为包含。

答案 2 :(得分:0)

执行此操作的首选方法 - 使代码不必因为标头位于不同的目录中而不必更改,就是放在代码中:

#include <avcodec.h>

然后在编译时添加开关-I

gcc -I/home/<username>/ffmpeg/include/libavcodec

最好使用标题的完整路径。

答案 3 :(得分:-1)

你需要告诉gcc include目录在哪里使用-I以及共享库在哪里-L

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

将包含更改为

#include "libavcodec/avcodec.h"