gpt4 book ai didi

makefile - 使用 Microsoft nmake 时如何获取命令的输出?

转载 作者:行者123 更新时间:2023-12-04 15:15:29 28 4
gpt4 key购买 nike

make在 linux 上,我们可以执行以下操作:

foo=$(shell /bin/bar)

运行命令 bar并将输出分配给 foo .稍后可以通过引用 $(foo) 在 makefile 中使用它。 .

但是现在我手头上有一个 Microsoft 项目,该项目已编译并与 Microsoft nmake.exe 链接。 . nmake 是否有等效的东西可以让我运行命令并将输出分配给变量?

最佳答案

虽然这是一个古老的问题,但有一种方法可以做到所问的问题;它只是令人费解,就像批处理文件中的所有内容一样!

必须使用 make 导入环境变量和预处理器可以调用命令这一事实的组合机制,然后递归调用 Makefile。它假设 Makefile 被称为 Makefile(没有扩展名,这是默认值)。

!IFNDEF MAKE
MAKE=NMAKE
!ENDIF
!IFNDEF SHELLVALUE
! IF [echo off && FOR /F "usebackq" %i IN (`hostname`) DO SET SHELLVALUE=%i && $(MAKE) /$(MAKEFLAGS) /nologo /f $(MAKEDIR)\Makefile && exit /b ] == 0
! MESSAGE Make completed
! ELSE
! ERROR Error in nmake
! ENDIF
!ELSE
# $(SHELLVALUE) now contains the string returned from the command USERNAME
!MESSAGE Shellvalue is $(SHELLVALUE)
# Put the parts of the makefile that depend on SHELLVALUE here
!ENDIF
#
# To be a valid makefile it must have some rules to perform
all:
@echo;$(SHELLVALUE)

是的,我知道它很可怕,但它确实演示了如何使用该技术,这可以使用任何 shell 命令来完成,而不仅仅是 hostname .

关于makefile - 使用 Microsoft nmake 时如何获取命令的输出?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4883021/

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