C++ 如果.h文件位于不同的目录中,如何添加它们?

C++ 如果.h文件位于不同的目录中,如何添加它们?,c++,C++,当我将Dao.h和Cola.h放在主文件所在的同一目录中时,它工作得非常好 make的输出: DIR = -I/usr/include/cppconn -I/home/panda/Documents/eclipse-workspace/Computacion/Cola -I/home/panda/Documents/eclipse-workspace/Computacion/Dao main: main.o Dao.o Cola.o Nodo.o $(CXX) -Wall $(D

当我将Dao.h和Cola.h放在主文件所在的同一目录中时,它工作得非常好

make的输出:

DIR = -I/usr/include/cppconn -I/home/panda/Documents/eclipse-workspace/Computacion/Cola -I/home/panda/Documents/eclipse-workspace/Computacion/Dao
main: main.o Dao.o Cola.o Nodo.o
        $(CXX) -Wall $(DIR) -o main main.o Dao.o Cola.o Nodo.o -L/usr/lib -lmysqlcppconn
g++-c-o main.o main.cpp
main.cpp:2:21:致命错误:Dao/Dao.h:没有这样的文件或目录
编译终止。
:目标“main.o”的配方失败
make:**[main.o]错误1
使用以下方法:

g++    -c -o main.o main.cpp
main.cpp:2:21: fatal error: Dao/Dao.h: No such file or directory
compilation terminated.
<builtin>: recipe for target 'main.o' failed
make: *** [main.o] Error 1

由于您的
#include
语句已经指定了
Dao
Cola
。因此,您需要在构建标志中添加
Dao
Cola
的父目录。

我必须将目录路径添加到对象文件中,因为它们位于与makefile不同的目录中

DIR = -I/usr/include/cppconn -I/home/panda/Documents/eclipse-workspace/Computacion

它必须在同一个工作目录中,否则您需要使用
..
符号
-I/home/panda/Documents/eclipse workspace/Computacion/Cola
在目录blah/Computacion/Cola中查找。C文件正在查找,因此将搜索blah/Computacion/Cola/Cola/Cola.h<代码>-I/home/panda/Documents/eclipse workspace/Computacion应该为您提供所需的路径。一行中是否有两个名为Cola和Dao的目录?如果没有,则include路径不正确,如果您计划在include中包含目录名,则它们需要指向Cola和Dao目录所在的目录。您还可能希望使用引号而不是
DIR = -I/usr/include/cppconn -I/home/panda/Documents/eclipse-workspace/Computacion
DIR = -I/usr/include/cppconn -I/home/panda/Documents/eclipse-workspace/Computacion
OBJS = main.o ./Dao/Dao.o ./Cola/Cola.o ./Cola/Nodo.o ./Persona/Persona.o
main: $(OBJS)
g++ -Wall $(DIR) $(OBJS) -o main -L/usr/lib -lmysqlcppconn