我正在尝试创建一个用于编译基于Oculus Rift的程序的makefile。我在目录中有Oculus Rift库的目标文件,在另一个目录中有头文件。这是我的makefile:
#####
# MAIN PROGRAM
#####
CXX = g++
CXXFLAGS =
DEPS_OVR = ($wildcard LibOVR/Src/*.h) ($wildcard LibOVR/Src/CAPI/*.h) ($wildcard LibOVR/Src/Util/*.h)
DEPS =
OBJ_OVR = ($wildcard LibOVR/Obj/Linux/Release/x86_64/*.o)
OBJ = main.o
EXE = BenchOculus
LIBS =
#####
# RULES
#####
all: $(EXE)
%.o: %.cpp $(DEPS_OVR) $(DEPS)
$(CXX) -Wall -c -o $@ $< $(CXXFLAGS) $(LIBS)
$(EXE): $(OBJ) $(OBJ_OVR)
$(CXX) -o $@ $(OBJ) $(OBJ_OVR) $(CXXFLAGS) $(LIBS)
chmod +x $@
clean:
rm -f $(OBJ)
rm -f $(EXE)
当我运行make时,出现以下错误:
make: *** No rule to make target `(ildcard', needed by `BenchOculus'. Stop.
我认为问题可能存在于DEPS_OVR和OBJ_OVR中,但我无法弄清楚如何解决这个问题。
答案 0 :(得分:2)
查看错误消息,并问自己为什么抱怨目标(ildcard
,当你写的是($wildcard ...
时。这告诉你,在一个字符左右,你的错误在哪里。然后返回并查看GNU Make中wildcard
函数的文档。