我的开发环境是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.
有什么想法吗?
答案 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路径环境变量?