C++ 我在这里指的是什么+;命令

C++ 我在这里指的是什么+;命令,c++,linux,g++,C++,Linux,G++,我知道在使用g++编译时,-I用于包含头文件,-L用于链接库文件。但是这里有一个位于第33行的g++编译命令: g++ -I../ ../common/convert_UTF.c \ ../common/string_conversion.cc \ minidump_file_writer.cc \ minidump_file_writer_unittest.cc \ -o minidump_file_writer_unittest 现在,-I../在这里到底意味着什么?它是否包括此目

我知道在使用g++编译时,
-I
用于包含头文件,
-L
用于链接库文件。但是这里有一个位于第33行的g++编译命令:

g++ -I../ ../common/convert_UTF.c \
 ../common/string_conversion.cc \
 minidump_file_writer.cc \
 minidump_file_writer_unittest.cc \
 -o minidump_file_writer_unittest

现在,
-I../
在这里到底意味着什么?它是否包括此目录和子目录中的所有头文件?

选项指定编译器应在其中查找头的额外目录,
-I../
指定该额外目录是运行
g++
命令的父目录。在父目录的(子目录)中还可以找到两个源文件。
/
是可选的;编译可以使用
-I..
进行(标志和值之间的空格也是可选的)


请注意,
-I
选项没有(直接)说明包含哪些头文件;它只是说在哪里可以找到标题。源代码
#include
行指示包含哪些标题。

这意味着将父目录添加到include搜索路径。谷歌“man gcc”:@P0W是的,非常糟糕|谢谢你,乔纳森。快速问题:那么它现在将查看此父目录下的所有子目录,包括头文件的父目录?我说的对吗?不太对。当预处理器看到
#include“header1.h”
时,它将先查找文件
。/header1.h
,然后再查找其他标准位置。如果它看到
#include“subdir/header2.h”
,它将先查找文件
。/subdir/header2.h
,然后再查找其他标准位置。如果可能看到,它将在查找其他位置之前先查找文件
。/../other/header3.h
。通常,使用
“header.h”
符号,它将首先查看当前目录;对于
符号,它不会。