我一直很享受使用IDE编写代码的奢侈品,我为我编写了makefile,我觉得我已经做了很长时间的“短切”,所以我读了一些手册并在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无法找到特定规则的命令。
如果我不包含它们,我会收到标准的“未定义”消息。
对此有任何帮助将不胜感激!谢谢
答案 0 :(得分:1)
看起来你在构建它之后尝试运行它?
在这种情况下,问题是你没有PATH上的当前目录;所以make找不到$(EXEC)
。
您可能只需要./$(EXEC)
直接运行它。
您应该将程序执行到另一个(PHONY
)目标,以便您可以自己执行构建步骤,并在不需要构建$(EXEC)
时运行
(我假设缺少制表符只是stackoverflow格式化,否则make
会抱怨。)