什么是 nmake 等同于过滤掉的?
What is the nmake equivalent of filter-out?
我已经获得了 ubuntu 的 makefile,我正尝试在 Windows 10 上将其与 nmake 一起使用。
nmake 似乎无法识别 filter-out
关键字,例如以下行:
OBJS_TEST = $(filter-out $(EXE_OBJ), $(OBJS))
nmake 是否有具有相同功能的关键字?
为了完整起见,从文件开头到上面一行(以及下面几行)的行如下:
EXE = main
TEST = test
OBJS_DIR = .objs
###############################################
### THE LINE IN QUESTION IS BELOW #############
OBJS_TEST = $(filter-out $(EXE_OBJ), $(OBJS))
###############################################
CPP_TEST = $(wildcard tests/*.cpp)
# CPP_TEST += uiuc/catch/catchmain.cpp
# The above line doesn't work with the "+=" extension in nmake; replace with below.
CPP_TEST = $(CPP_TEST) $(wildcard tests/*.cpp)
报告的错误是:
fatal error U1001: syntax error : illegal character '-' in macro
据我所知,在 nmake 中没有等同于 filter-out
的东西。此外,nmake 不支持 wildcard
函数,因此您必须处理它。而且,我怀疑您对 +=
的替换不会起作用;在大多数 POSIX 版本中, make FOO = $(FOO)
是非法的,因为它给出了变量查找的无限循环。不过,也许 nmake 的工作方式不同。
nmake SO 不同于 POSIX make 和 GNU make,你要么必须从头开始重写 makefile,要么就去获取一个 GNU 版本制作 Windows(或自己制作)。 GNU make 非常便携,在 Windows 上运行良好。那会少很多工作。
我已经获得了 ubuntu 的 makefile,我正尝试在 Windows 10 上将其与 nmake 一起使用。
nmake 似乎无法识别 filter-out
关键字,例如以下行:
OBJS_TEST = $(filter-out $(EXE_OBJ), $(OBJS))
nmake 是否有具有相同功能的关键字?
为了完整起见,从文件开头到上面一行(以及下面几行)的行如下:
EXE = main
TEST = test
OBJS_DIR = .objs
###############################################
### THE LINE IN QUESTION IS BELOW #############
OBJS_TEST = $(filter-out $(EXE_OBJ), $(OBJS))
###############################################
CPP_TEST = $(wildcard tests/*.cpp)
# CPP_TEST += uiuc/catch/catchmain.cpp
# The above line doesn't work with the "+=" extension in nmake; replace with below.
CPP_TEST = $(CPP_TEST) $(wildcard tests/*.cpp)
报告的错误是:
fatal error U1001: syntax error : illegal character '-' in macro
据我所知,在 nmake 中没有等同于 filter-out
的东西。此外,nmake 不支持 wildcard
函数,因此您必须处理它。而且,我怀疑您对 +=
的替换不会起作用;在大多数 POSIX 版本中, make FOO = $(FOO)
是非法的,因为它给出了变量查找的无限循环。不过,也许 nmake 的工作方式不同。
nmake SO 不同于 POSIX make 和 GNU make,你要么必须从头开始重写 makefile,要么就去获取一个 GNU 版本制作 Windows(或自己制作)。 GNU make 非常便携,在 Windows 上运行良好。那会少很多工作。