我是一个从 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
但没有用)
答案 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
已经知道路径。