C++ 我在这里指的是什么+;命令
我知道在使用g++编译时,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../在这里到底意味着什么?它是否包括此目
-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”
符号,它将首先查看当前目录;对于
符号,它不会。