我在Windows 8上使用GNU make来了解makefile。我所指的教程是为Linux编写的,所以我正在修改给出的makefile,据我所知,例如:将'/'替换为'\'等。
我的makefile内容是:
CC=g++
INCLIST=functions.h
INCDIR=..\include
OBJDIR=.\obj
BINDIR=..\bin
_OBJLIST = main.o
OBJ=$(patsubst %,$(OBJDIR)\%,$(_OBJLIST))
all: main.o
main.o: main.cpp
$(CC) -c -I $(INCDIR) main.cpp -o $(OBJ)
我可以通过
手动编译main.cppg++ -c -I ..\include main.cpp -o .\obj\main.o
但是,当我运行make
时,输出为:
g++ -c -I ..\include main.cpp -o .\obj%
并且目标文件是在当前目录而不是.\obj
目录中创建的,并且名为./obj%
而不是必需main.o
。我在Ubuntu上运行了相同的设置,它工作得很好,任何人都可以解释原因吗?
谢谢.. :))
答案 0 :(得分:1)
反斜杠是一个转义标记,因此\%是一个文字百分号。此外,/也适用于Windows。