【发布时间】:2011-05-30 23:06:39
【问题描述】:
我一直在零星地从“加速 C++”中自学 cpp,最近我注意到,当我忘记了我的 #include <algorithm> 语句时,我的代码(包括 transform 和 find_if)无论如何都会编译并成功运行。在此之后,我尝试完全删除所有标准头包含语句,发现我的代码仍然运行。
我认为我无法理解预处理器命令将在我完成本书时得到解决,但现在我只需要知道如何确保当我不正确地制作标题时我的终端会对我大喊大叫,以便我可以学习东西在 std 库中的位置。
我运行的是 OS 10.6.5,所以我必须使用以下 unix exe 文件编译我的代码:
CC = g++
CFLAGS = -Wall
PROG = TrainingProject23
SRCS = TrainingProject23.cpp
ifeq ($(shell uname),Darwin)
LIBS = -framework OpenGL -framework GLUT
else
LIBS = -lglut
endif
all: $(PROG)
$(PROG): $(SRCS)
$(CC) $(CFLAGS) -o $(PROG) $(SRCS) $(LIBS)
clean:
rm -f $(PROG)
它包括 OpenGL 的构建协议,因为我也在学习这一点,并且使用这个文件来编译我所有的 C++ 项目很容易。除了如何更改src文件和程序名称之外,我不太了解Makefile,我只是从互联网上得到的。
【问题讨论】:
-
信息不足。我们需要 TrainingProject23.cpp
-
Hmm... TrainingProject23 只是一个我保持打开的文件,所以我不必对上面的 unix 文件进行太多修改(我可以在项目之间保持 SRCS = TrainingProjects23 相同)。我经常完全删除内容并重新开始尝试新的东西。我不再拥有这些内容,但我尝试过的每个代码都会产生相同的结果:无论是否包含必要的标准库节点,它都能成功运行和编译。