在 gcc 路径搜索中 - 我无法在当前目录中导入文件

时间:2020-12-25 16:36:05

标签: c++ gcc path g++

我是一个从 python 到 cpp 的人。我几乎没有使用 gcc 编译器的经验。

我遇到的问题是;

如果我在 foo.h 下有 somedir。除非我包含绝对路径,否则通过 g++/gcc 编译 bar.cpp 找不到 foo.h

一些元数据

os : ubuntu 20.04 LTS
gcc version : gcc (Ubuntu 9.3.0-17ubuntu1~20.04) 9.3.0

(注意:我试过 gcc -B . bar.cpp 但没有用)

1 个答案:

答案 0 :(得分:1)

如果 *.h 文件与 *.cpp 文件在同一目录中,那么 gcc 将自动在同一目录中找到该文件,以便您可以使用此命令。

gcc bar.cpp

如果 *.h 文件与 *.cpp 文件位于不同的目录中,则需要为 gcc 提供更多信息,头文件位于何处,因此您需要提供绝对-I 选项的路径。

gcc -I somedir/foo.h bar.cpp

请注意,在这两种情况下,您只需编写 #include "foo.h",代码就会正常工作。在第一种情况下,gcc 将能够找到该文件,因为它位于当前工作目录中。在第二种情况下,gcc 将能够找到该文件,因为它被赋予了该文件所在目录的绝对路径。您只需要在 #include 中指定文件名而不是路径,因为 gcc 已经知道路径。