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

gcc: Using a function from another directory

本文关键字:函数 另一个 gcc      更新时间:2023-10-16

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

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

并运行

 gcc filename.c

并且得到这个错误

error: avcodec.h: No such file or directory

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

使用:

#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 ...
#include "~/ffmpeg/include/libavcodec/avcodec.h"

正在使用~,这是仅用于KSH和BASH的HOME标识。您需要使用完整/相对路径作为include。

实现这一点的一种首选方法是将放在代码中,这样代码就不必仅仅因为标头在不同的目录中而更改

#include <avcodec.h>

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

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

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

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

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

将include更改为

#include "libavcodec/avcodec.h"