【发布时间】:2016-06-21 18:47:07
【问题描述】:
我正在尝试构建这个 hello world 项目,其中包含一个包含 .h 和 .cpp 文件的库(因此也需要编译该库)。目录结构是
helloworld/lib/StanfordCPPLib/console.h
/src/hello.h
/src/hello.cpp
可以看到项目代码here
当我使用以下 makefile 运行 make 时,我收到一个错误,即找不到 console.h(包含在 hello.cpp 中)
CC=gcc
CFLAGS=-I.
DEPS = hello.h
OBJ = hello.o
#console.h is in lib/StanfordCPPLib and it is included by hello.cpp
INC=-I../lib/StanfordCPPLib
%.o: %.c $(DEPS)
$(CC) -c -o $@ $< $(CFLAGS)
hellomake: $(OBJ)
g++ -o $@ $^ $(CFLAGS) $(INC)
如何在这个 makefile 中包含 StanfordLibrary,以便它被包含和编译。
(注意,我知道原始源代码包含一个 QT 创建器文件,但是,我正在尝试使用 make 构建它)
【问题讨论】:
-
在您看到错误消息之前,您将看到执行编译程序的命令,在它上面几行。如果您查看实际执行的命令,您应该能够自己找出问题所在。
-
@SamVarshavchik wadr,如果您因为您认为我“应该能够自己解决问题”而投反对票,我认为这不是投反对票的正当理由
-
@Leahcim 好吧,您至少应该向我们展示您遇到的错误。
-
@πάνταῥεῖ 它在 OP 中说我得到的错误:
i get an error that console.h (which is included by hello.cpp) cannot be found即未找到斯坦福图书馆中的 console.h 文件——还要注意斯坦福图书馆包含 .cpp文件,因此需要对其进行编译。 -
makefile 中存在矛盾:console.h 在 -I../lib/StanfordCPPLib 还是 -I../lib/StanfordCPP/Lib 中?另外,你的makefile在哪个目录?