【发布时间】:2015-01-20 22:56:02
【问题描述】:
我正在尝试弄清楚如何将头文件和目标文件添加到标准库中,以便我可以像使用标准库一样简单地使用我的自定义文件。
目前我必须在.c文件中键入头文件的路径,然后在编译时链接目标文件路径。
我希望能够添加:
#include <mystdlib.h>
不用担心像引用 stdio.h 头文件时那样链接目标文件。
我已经四处搜索,但我担心我没有使用正确的术语,因为我似乎没有找到我需要的结果。是我第一个想这样做,还是根本不可能,因此人们甚至都不尝试?
【问题讨论】:
-
如果你的头文件和
.c文件在同一个项目文件夹中,你可以使用:#include "mystdlib.h" -
如果标题不在标准位置,也不在当前目录中,则使用“-I”参数指定包含它的目录。例如:
gcc -I/home/mysql/include xx.c -o xx -
使用像gnu.org/software/make 这样的工具将大大简化您的构建过程。通常,您不想手动调用 gcc,因为编译和链接非平凡项目中的所有内容既费时又容易出错。
-
@CaptainMurphy 众所周知,正确的 makefile 通常很难正确处理。如果他们要使用
Make而不是 cmake 或 automake 之类的东西(或任何你最喜欢的构建系统),他们仍然需要了解基础知识(或者只是花一天时间阅读info gcc)。 -
如果头文件和你的源文件在同一个目录下你可以使用
#include "header.h"并且你不需要使用-I告诉编译器在哪里找到它。如果不在同一个目录中,请使用makefile(我不同意上面的评论,简单的makefile非常简单,例如CPPFLAGS = -I ~/path/to/headers是一个有效的makefile)
标签: c gcc header-files object-files