3

我一直在享受使用为我编写 makefile 的 IDE 编码的奢侈,我决定我已经“捷径”很久了,所以我阅读了一些手册并观看了一些关于 makefile 的视频并有一个makefile 半完成,我遇到的唯一麻烦是我不确定如何链接库。

CPPS := $(shell ls src/*cpp)
TEMP := $(subst src/,obj/,$(CPPS))
OBJS := $(subst .cpp,.o,$(TEMP))
HEADERS := $(shell ls inc/*.h)
EXEC := bin/testfile

all: $(EXEC)

$(EXEC) : $(OBJS) $(HEADERS)
g++ -I inc/ $(OBJS) -o $(EXEC) -lSDL -lGLU
$(EXEC)

obj/%.o: src/%.cpp
g++ -Wall -I inc/ -c $< -o $@

ps:以防我说“图书馆标志”时说错了,我的意思是-lSDL -lGLU等等......

无论我把它们放在哪里,它们似乎都不起作用。

这是我插入 lib 标志时遇到的错误, make: *** [bin/testfile] Error 255

错误 255 是由 make 产生的,因为它的命令 shell 无法找到特定规则的命令。

如果我不包括它们,我会收到标准的“未定义”消息。

对此的任何帮助将不胜感激!谢谢

4

1 回答 1

1

看起来您在构建可执行文件后尝试运行它?

在这种情况下,问题是您在 PATH 上没有当前目录;所以 make 找不到$(EXEC)

您可能应该./$(EXEC)直接运行它。

并且您应该将执行程序移动到不同的 ( PHONY) 目标,这样您就可以自己执行构建步骤,并在$(EXEC)不需要构建时运行。

(我假设缺少标签只是stackoverflow格式,否则make会抱怨)。

于 2012-04-10T10:24:00.673 回答