2

我在 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 上运行了相同的设置,它运行良好,谁能解释为什么?

谢谢.. :)

4

1 回答 1

1

反斜杠是转义标记,因此 \% 是文字百分号。此外, / 也适用于 Windows。

于 2013-03-29T18:38:56.807 回答