#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
答案 0 :(得分:1)
使用此:
DIR = -I/usr/include/cppconn -I/home/panda/Documents/eclipse-workspace/Computacion
因为您的#include
语句已指定Dao
和Cola
。因此,您需要在构建标志中添加Dao
和Cola
的父目录。
答案 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