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

时间:2017-12-17 22:11:02

标签: c++

#include <Dao/Dao.h>
#include <Cola/Cola.h>
int main(){return 0;}

我正在尝试使用此makefile编译该代码:

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

当我将Dao.h和Cola.h带到主文件所在的目录

时,它的工作正常

make的输出:

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

2 个答案:

答案 0 :(得分:1)

使用此:

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

因为您的#include语句已指定DaoCola。因此,您需要在构建标志中添加DaoCola的父目录。

答案 1 :(得分:0)

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

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