【发布时间】:2015-12-21 13:36:11
【问题描述】:
我正在尝试学习不同的编译技巧。请考虑以下代码 sn-p :
#include <header.h>
main()
{
execute me;
}
现在我正在使用以下代码编译此代码:-
gcc hello.c -I /home/example
我在编译此文件头期间看到的内容正在 /usr/include/ 等路径中搜索,但我已放置 header.h /home/example/header.h 路径 所以这找不到头文件。
但是如果现在我以以下方式包含头文件,那么它能够找到头文件。
#include "header.h"
所以我想知道是否有任何方法可以使用 选项包含头文件,并且我还可以使用命令行(使用 -I 或任何选项)提供头文件路径?
如果有不清楚的地方请评论。
【问题讨论】:
-
如果您使用
-I给出了路径,无论您如何包含它,gcc 都会搜索它。你是怎么决定的?:“但我已经放置了 header.h /home/example/header.h 路径,所以无法找到头文件”。您是否收到提示无法找到的错误消息? -
如果您将
-I放在源文件之前,行为是否会有所不同? (gcc -I /home/example hello.c)?在 Mac OS X 10.11.2 上使用 GCC 5.3.0 对我来说似乎并不重要。但是指定-I指令的顺序并不重要。添加-H选项告诉您什么? -
@terencehill 你是对的 :)
标签: c gcc compilation header