gpt4 book ai didi

windows - 在 jom/nmake 读取的 makefile 中设置环境变量

转载 作者:行者123 更新时间:2023-12-03 11:07:40 24 4
gpt4 key购买 nike

我有一个 makefile,旨在与 nmake 一起使用(在 ms visual studio 命令行提示符下)。 makefile 本身设置了其他工具所需的环境变量 MY_SAY_SOMETHING,例如批处理文件 test.bat。这对 nmake 非常有效。

但是,我想使用 Qt 的 jom 来加速我的构建过程,方法是使用带有选项 -J 的多个处理器内核。工具jom根据Qt it被认为是nmake的克隆,所以makefile应该是兼容的。

问题是:jom 没有在windows机器上设置环境变量!至少不是 nmake 支持它的方式。

所以我的问题是:如何使用 jom 设置环境变量?


这是显示我的问题的最短示例:

生成文件:

!IF [set MY_SAY_SOMETHING="my super message"]
!ENDIF

all:
@test.bat

测试.bat:

@echo off
echo THIS IS MY SUPER MESSAGE "%MY_SAY_SOMETHING%"

现在我只是用 nmake 调用 makefile(从 visual studio 命令行提示)。这看起来像这样:

D:\> nmake

Microsoft (R) Program Maintenance Utility Version 10.00.30319.01 Copyright (C) Microsoft Corporation. All rights reserved.

THIS IS MY SUPER MESSAGE ""my super message""

当我调用 jom(从 visual studio 命令行提示符或常规 Windows cmd.exe 提示符)时,我只是得到这个:

D:\> jom

jom 1.1.3 - empower your cores

THIS IS MY SUPER MESSAGE ""

我还为 nmakejom 调用了 -P 选项,以获取有关如何解释 makefile 的更多信息。但是,我的环境变量是用 nmake 打印的,而不是用 jom 打印的。我还尝试了具有相同结果的选项 -E(覆盖环境变量宏)。

也许这只是jom中的一个bug...

最佳答案

生成文件:

all: .MY_ENVIRONMENT
@test.bat

.MY_ENVIRONMENT:
@set MY_SAY_SOMETHING="my super message"

将与 nmakejom 一起工作:

>nmake -l
THIS IS MY SUPER MESSAGE ""my super message""

>jom -l
THIS IS MY SUPER MESSAGE ""my super message""

关于windows - 在 jom/nmake 读取的 makefile 中设置环境变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53856254/

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