Cap*_*orn 5 windows nmake makefile gnu-make
all: prd.exe
CC=cl
CFLAGS=-O2 -I../src -I. /W4
LDFLAGS = /Zi
LIBSRC = $(addprefix ../lib/, \
open.c malloc.c \
) \
$(addprefix ../src/, \
main.c \
) \
helper.c
LIBOBJS = $(LIBSRC:.c=.o)
prd.exe: ../src/main.obj
$(CC) $(LDFLAGS) -Fe$@ *.o
../src/main.obj: ../src/main.c
$(CC) $(CFLAGS) $(LIBOBJS) -c $< -Fo $@
.c.o:
$(CC) $(CFLAGS) $(LIBOBJS) -c $< -Fo $@
.c.i:
$(CC) $(CFLAGS) $(LIBOBJS) -C -E $< > $@
clean:
del /s /f /q ..\lib\*.o ..\src\*.o *.o *.exe *.pdb
distclean: clean
Run Code Online (Sandbox Code Playgroud)
我收到这个错误
致命错误 U1000:语法错误 : ')' 在第 6 行的宏调用中丢失
我在这里错过了什么吗?nmake 确实识别 addprefix,对吗?
不,addprefix是 GNU make 扩展。您有一个需要 GNU make (gmake) 来处理的 GNUmakefile。
或者,您可以重写 GNU makefile 以不使用 GNU 扩展。在你的情况下,这应该很容易:
LIBSRC = $(addprefix ../lib/, \
open.c malloc.c \
) \
$(addprefix ../src/, \
main.c \
) \
helper.c
Run Code Online (Sandbox Code Playgroud)
变成
LIBSRC = ../lib/open.c ../lib/malloc.c ../src/main.c helper.c
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1362 次 |
| 最近记录: |