我想使用 C 语言在屏幕上打印一个像素。当我编写代码并编译时,它显示
graphics.h:没有此文件或目录
我发现 gcc 没有“graphics.h”头文件。
如何将 graphics.h 添加到 gcc 编译器?
答案1
在你的.c文件中
# include <whatever.h>
和<
将>
默认搜索/usr/include
指定的文件,这就是为什么“stdio.h”总是有效,因为它在/usr/include/
在你的.c文件中,如果你有
# include "whatever.h"
那么它将只在编译时 .c 文件所在的当前文件夹中搜索以查找无论如何.h。因此,如果您这样做,# include "stdio.h"
您将找不到,但如果您这样做,# include "/usr/include/stdio.h"
这将起作用并且相当于# include <stdio.h>
。
使用gcc -I/path_to_wherever -L/path_to_wherever myprogram.c -o myprogram.x
编译让 gcc 知道在哪里寻找你的 .h 文件(使用-I
选项)和 lib 文件(.a 或 .so)-L
如有疑问,请使用-I
和-L
明确告诉 gcc .h 文件的位置。
提供路径时-I
,或之后也没有空格。-L
完成上述操作后,您需要whatever-devel
在任何文件夹中安装软件包,然后提供graphics.h
随附的共享对象libgraphics.so
或静态库libgraphics.a
。 您使用的任何函数的编译代码graphics.h
都将存在于随附的 .so 或 .a 文件中,您还需要在编译时引用该文件以创建可执行文件。
你不需要添加graphics.h
到编译器中,它是你从编译器中引用的一段独立代码...你告诉 gcc 编译你的 .c 文件,并使用 -I 和 -L 引用这些支持库,即 graphics.h
你的编译行将会是这样的
gcc myprogram.h -o myprogram.x -I/path_to_graphics.h_location -L/path_to_graphics.so_location -lgraphics
小写字母-l
表示与任何库链接,就像-lm
与数学库链接一样。