【发布时间】:2015-10-15 19:04:28
【问题描述】:
# Compiler to use
CC = g++
# flags to pass compiler
CFLAGS = -ggdb3 -O0 -std=c99 -Wall -Werror
# Name for the executable
EXE = test
# space-separated list of header files
HDRS = simplegui.h globals.h timer.h tile.h gamesprites.h
# space-separated list of libraries, if any,
# each of which should be prefixed with -l
LIBS = -lSDLmain -lSDL -lSDL_image -lSDL_mixer -lSDL_ttf
# space-separated list of source files
SRCS = main.cpp gamesprites.cpp simplegui.cpp tile.cpp timer.cpp
# automatically generated list of object files
OBJS = $(SRCS:.cpp=.o)
# default target
$(EXE): $(OBJS) $(HDRS) Makefile
$(CC) -IC:\SDL-1.2.15\include -LC:\SDL-1.2.15\lib $(CFLAGS) -o $@ $(OBJS) $(LIBS)
# dependencies
$(OBJS): $(HDRS) Makefile
它不适用于 makefile。我的另一种方法是:
g++ -IC:\SDL-1.2.15\include -o test main.cpp -LC:\SDL-1.2.15\lib -lSDLmain -lSDL -lSDL_image -lSDL_ttf -lSDL_mixer
它最初有效,我不知道我更改了什么,不,它不起作用,它一直告诉它找不到目录。以前它确实找到了目录,但对我大喊依赖关系。我很沮丧找不到答案。如何编译具有许多 .h .cpp 文件并且在其他目录中有 .h 文件的程序?我展示的两种方法都不起作用......(但是我可以使用配置的 IDE 编译代码,但我不记得如何,我将很快格式化我的电脑。
编辑:
编辑:将 \ 更改为 /,现在我有了这个:
【问题讨论】:
-
您给出的 g++ 命令乍一看似乎很合理。你能澄清一下你遇到的问题吗? “它一直告诉我它找不到目录” - 它找不到哪个目录?您是否检查过该目录确实存在?
-
是的,目录存在。这就是我在 IDE 中配置编译器和链接器的方式。但我需要知道如何从命令行或使用 makefile 编译它。它一直告诉我它没有找到“SDL/SDL.h”。但是,在我的电脑中,C:\SDL-1.2.15\include 包含文件夹 SDL,其中它是 SDL.h,与链接器目录相同。当我可以“编译”时,它只是因为依赖而对我大喊大叫(我没有使用我拥有的所有源代码)。但是,即使添加所有内容,它也会不断抛出该错误(现在它甚至不适用于 g++)。我也有没有 cpps 的标题
-
我认为它不喜欢
$(EXE): $(OBJS) $(HDRS) Makefile因为 $(HDRS) 是simplegui.h globals.h timer.h tile.h gamesprites.h但它们不存在于当前目录中。但如果没有实际的错误消息,我只是在猜测。 -
我在使用 \ 时遇到了问题,更改为 /,现在它尝试编译,但是仍然出现很多编译器错误(在我的 IDE 上编译时没有)跨度>
标签: c++ compiler-errors makefile header g++