首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >NMake模式规则

NMake模式规则
EN

Stack Overflow用户
提问于 2012-10-06 12:06:00
回答 1查看 1.9K关注 0票数 7

嗨,我决定尝试学习如何通过命令行和makefile来构建程序,而不是依赖Visual来帮助我。在熟悉了编译成.obj文件和链接的过程之后,我转到了NMake。我编写了一个基本的makefile来尝试将位于多个文件夹中的源文件编译成.obj文件,将.obj文件的每个文件夹链接到.lib文件中,然后将.lib文件链接到.exe文件中。

代码语言:javascript
复制
CC=cl /c /EHsc /Fo
LIB=lib /OUT:
LINKER=link /OUT:
EXEC_NAME=Test.exe
DEL=del
MAKE=nmake
OUT=.\out

all: $(OUT)\*.lib
    $(LINKER)$(EXEC_NAME) *.lib

clean:
    $(DEL) $(OUT)

rebuild:
    $(MAKE) clean
    $(MAKE) all

$(OUT)%.lib: $(OUT)\%\*.obj
    $(LIB)%.lib $(OUT)%\*.obj

%(OUT)\%\:
    $(CC)$(OUT)\%\ .\%\*.cpp

当我尝试用nmake all运行它时,它告诉我:NMAKE : fatal error U1073: don't know how to make '.\out\*.lib'

提前谢谢。

EN

回答 1

Stack Overflow用户

发布于 2014-04-10 08:21:11

这个问题被忽视了一年半,这是可以理解的,但最近却吸引了4票。

实际上没有问题,但隐含的问题是:为什么nmake不能在我的makefile中遵循%模式规则?

答案是MS nmake根本不支持%模式规则。nmake及其推理规则很容易找到。

make和其他一些make工具支持%-模式规则。这里的makefile也会因为明显的错误而在GNU make中失败。

票数 7
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/12759638

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档