2012-04-10 64 views
1

我一直在享受编写代码的奢华,它为我写了我的生成文件,Iv决定我一直在'短暂'切换,所以我已经阅读了一些手册,并观看了关于makefile的一些视频,并且makefile文件已经完成,唯一的麻烦是我不知道如何链接库。创建我自己的生成文件[错误255]

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 [email protected] 

PS:只是柜面我说错话,当我说“图书馆国旗”我的意思是-lSDL -lGLU等等

无论我把它们放在他们不似乎工作。

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

的错误255是由化妆产生不能够找到一个命令特定规则的shell命令的结果。

如果我不包括他们,我会得到标准的'未定义'消息。

任何帮助,将不胜感激!谢谢

+0

我没有看到您粘贴的代码段中的任何'-l'标志!它很难像“第十行”“最后一行” – 2012-04-10 10:00:28

+0

对不起,所有修正:) – Elgoog 2012-04-10 10:03:56

+0

你也可以告诉我们,当你说“不似乎工作”时,你面临什么错误? – 2012-04-10 10:08:32

回答

1

它看起来像你正在试图运行你的可执行文件后,你已经建立它?

这种情况下,问题是你没有你的PATH当前目录;所以无法找到$(EXEC)

您应该直接运行./$(EXEC)

而且您应该将程序执行到不同的目标(PHONY),以便您可以仅执行构建步骤,并且在不需要构建$(EXEC)时运行。

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

+0

你在这里的钱爆炸!谢谢,我正确链接库?我的编似乎并没有执行,但没有显示错误。然而,当使用IDE构建它时,它工作得很好... – Elgoog 2012-04-10 10:30:09

+0

@Elgoog恐怕你没有提供足够的信息;你有没有做出我建议的改变?我会从你的Makefile中删除执行程序,并直接运行它 - 然后更容易看到发生了什么。 – 2012-04-10 10:43:25