我在 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.cpp
g++ -c -I ..\include main.cpp -o .\obj\main.o
但是,当我运行时make
,输出是:
g++ -c -I ..\include main.cpp -o .\obj%
并且目标文件是在当前目录而不是.\obj
目录中创建的,并且被命名./obj%
而不是 required main.o
。我在 Ubuntu 上运行了相同的设置,它运行良好,谁能解释为什么?
谢谢.. :)