编译器找不到已安装的库头

oll*_*458 2 c compiler-errors header-files

在C中编写我的第一个应用程序,它似乎无法找到头文件(我按照自述文件中的说明安装):

#include <stdio.h>
#include <stdlib.h>
#include <ftdi.h>

int main (int argc, char *argv[])
{
int ret;
struct ftdi_context = *ftdi;
struct ftdi_version_info version;
if ((ftdi = ftdi_new()) == 0)
{
    fprintf(stderr, "ftdi_new failed\n");
}
else {
    fprintf(stderr, "Success\n");
}
return 0;
}
Run Code Online (Sandbox Code Playgroud)

但它在这里找到它:

ollieb@ursus ~/Documents/BitBang $ locate ftdi.h
/home/ollieb/.local/share/Trash/files/libftdi/libftdi/ftdipp/ftdi.hpp
/home/ollieb/.local/share/Trash/files/libftdi/libftdi/src/ftdi.h
/home/ollieb/Applications/libftdi1-1.3/build/doc/html/group__libftdi.html
/home/ollieb/Applications/libftdi1-1.3/build/doc/man/man3/ftdi.h.3
/home/ollieb/Applications/libftdi1-1.3/build/doc/man/man3/ftdi.hpp.3
/home/ollieb/Applications/libftdi1-1.3/ftdipp/ftdi.hpp
/home/ollieb/Applications/libftdi1-1.3/src/ftdi.h
/usr/include/libftdi1/ftdi.h
/usr/include/libftdi1/ftdi.hpp
Run Code Online (Sandbox Code Playgroud)

这是当我尝试编译时发生的事情,它说无法找到该文件(当我在代码库文件夹中运行示例时,它们运行正常):

ollieb@ursus ~/Documents/BitBang $ make
make bitbang
make[1]: Entering directory '/home/ollieb/Documents/BitBang'
cc -Wall -g     bitbang.c   -o bitbang
bitbang.c:3:18: fatal error: ftdi.h: No such file or directory
compilation terminated.
<builtin>: recipe for target 'bitbang' failed
make[1]: *** [bitbang] Error 1
make[1]: Leaving directory '/home/ollieb/Documents/BitBang'
Makefile:4: recipe for target 'all' failed
make: *** [all] Error 2
Run Code Online (Sandbox Code Playgroud)

Sou*_*osh 5

默认情况下,编译器在默认的INCLUDE路径中搜索头文件,而不是整个文件系统.

如果您的标头位于自定义路径中,则需要通知编译器.例如,使用gccclang,您可以使用-I开关让编译器知道头文件所在的路径.

gcc在线手册,

-Idir
将目录添加dir到要搜索头文件的目录列表的头部.[...]