操作包含文件的搜索路径

时间:2009-08-06 19:07:06

标签: c gcc include

我的开发环境是some_header.h/usr/include中的/another/directory/another/directory包含我需要在程序中包含的一些头文件,但我想使用some_header.h中的/usr/include。当我使用

 gcc ... -I/another/directory

gcc使用/another/directory/some_header.h。如果我使用

 gcc ... -I/usr/include -I/another/directory

gcc做同样的事情,因为它忽略了/usr/include,因为它是标准搜索路径的一部分,但它在-I.

包含的非标准目录之后被搜索

有什么想法吗?

3 个答案:

答案 0 :(得分:6)

使用 -iquote 开关:

使用引号包含 another / directory 中的文件:

#include "another_file.h"

然后使用

gcc -iquote /another/include ...

为引用的包含文件添加搜索路径。此开关将添加一个目录,在当前目录之后和-I和系统包含路径之前搜索引用的包含文件。

使用括号(即#include <header.h>)包括您的其他包含文件。

有关更多信息,请参阅此处: Where are include files stored - Ubuntu Linux, GCC

答案 1 :(得分:4)

你看过-nostdinc吗?

手册说:

  

-nostdinc
             不要在标准系统目录中搜索头文件。              只有你用-I选项指定的目录(和              搜索当前文件的目录(如果适用)。

当然,这意味着必须指定通常在你想要的标准搜索路径上的任何内容...

答案 2 :(得分:0)

您是否尝试取消设置系统INCLUDE路径环境变量?