我有一个makefile,它是为与nmake(在ms visual studio命令行提示符中)配合使用而设计的。 makefile 本身设置了一个环境变量 MY_SAY_SOMETHING,这对于其他工具如批处理文件 test.bat 非常重要。这在 nmake 中非常好用。
然而,我想使用 Qt 的 jom 来加速构建过程,通过使用 -J 选项来利用多个处理器核心。据 Qt 称,jom 是 nmake 的克隆版本,因此 makefile 应该是兼容的。
问题是:jom 在 Windows 上不会像 nmake 一样设置环境变量。
那么我的问题是:如何使用 jom 设置环境变量?
下面是我遇到问题的最短示例:
makefile:
现在我只是通过nmake(从Visual Studio命令行提示符)调用makefile。这看起来像这样:
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 ""
我还使用了-nmake和-jom选项-P以获取有关如何解释makefile的更多信息。然而,我的环境变量是与nmake一起打印的,但与jom不同。我还尝试了相同结果的-E选项(覆盖环境变量宏)。
也许这只是jom中的一个错误...
然而,我想使用 Qt 的 jom 来加速构建过程,通过使用 -J 选项来利用多个处理器核心。据 Qt 称,jom 是 nmake 的克隆版本,因此 makefile 应该是兼容的。
问题是:jom 在 Windows 上不会像 nmake 一样设置环境变量。
那么我的问题是:如何使用 jom 设置环境变量?
下面是我遇到问题的最短示例:
makefile:
!IF [set MY_SAY_SOMETHING="my super message"]
!ENDIF
all:
@test.bat
test.bat:
@echo off
echo THIS IS MY SUPER MESSAGE "%MY_SAY_SOMETHING%"
现在我只是通过nmake(从Visual Studio命令行提示符)调用makefile。这看起来像这样:
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 ""
我还使用了-nmake和-jom选项-P以获取有关如何解释makefile的更多信息。然而,我的环境变量是与nmake一起打印的,但与jom不同。我还尝试了相同结果的-E选项(覆盖环境变量宏)。
也许这只是jom中的一个错误...