gpt4 book ai didi

c++ - NMake 模式规则

转载 作者:塔克拉玛干 更新时间:2023-11-02 23:38:30 24 4
gpt4 key购买 nike

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

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'

提前致谢。

最佳答案

这个问题在一年半的时间里被忽略是可以理解的,但最近吸引了 4 票赞成。

实际上没有提出任何问题,但隐含的问题是:为什么 nmake 不能遵循我的 makefile 中的 %-pattern 规则?

答案是 MS nmake 根本不支持 %-pattern 规则。 The documentation of MS nmake及其 inference rules很容易找到。

GNU make和其他一些制作工具支持 %-pattern rules .由于明显的错误,这里的 makefile 在 GNU make 中也会失败。

关于c++ - NMake 模式规则,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12759638/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com