makefile 在 window 中设置环境变量
makefile set environment variables in window
我在 windows 中写了一个 makefile 来设置环境变量,但是它不起作用。
像这样
local:
set CONFIGOR_ENV=local
echo %CONFIGOR_ENV%
然后我执行它,它打印
set CONFIGOR_ENV=local
echo %CONFIGOR_ENV%
ECHO 处于关闭状态。
然后我明白了
**生成文件不可能设置您的环境。 makefile 在 shell 的单独实例中运行命令。就像如果你打开了两个 cmd.exe windows 并且你在其中一个中设置了一个变量,它不会在另一个中设置。这与 make 的工作方式相同。 **
所以我更新了,
local:
set CONFIGOR_ENV=local ^
echo %CONFIGOR_ENV%
但它打印相同的信息
set CONFIGOR_ENV=local ^
echo %CONFIGOR_ENV%
ECHO 处于关闭状态。
我也试试那个shell
.ONESHELL:
local:
set CONFIGOR_ENV=local ^
echo %CONFIGOR_ENV%
打印:
set CONFIGOR_ENV=local ^
echo %CONFIGOR_ENV%
ECHO 处于关闭状态。
制作版本:
GNU Make 3.82.90
Built for i686-pc-mingw32
Copyright (C) 1988-2012 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.
我想知道makefile可以在windows中设置环境变量吗?
我不确定你为什么在这里使用 ^
。转义字符:在这种情况下似乎没有用。
您可以写:
local:
set CONFIGOR_ENV=local & echo %CONFIGOR_ENV%
(在 Windows 批处理文件中,&
是命令分隔符,类似于 POSIX shell 中的 ;
)或者您可以使用 .ONESHELL
,如果你的 make 版本支持它,但你应该删除 ^
;通过添加 ^
,您只需转义换行符,这样整个事情就会分配给变量;也就是说,你是 运行:
set CONFIGOR_ENV=local echo %CONFIGOR_ENV%
所以在此之后 CONFIGOR_ENV
变量的值将是 local echo
.
我在 windows 中写了一个 makefile 来设置环境变量,但是它不起作用。 像这样
local:
set CONFIGOR_ENV=local
echo %CONFIGOR_ENV%
然后我执行它,它打印
set CONFIGOR_ENV=local
echo %CONFIGOR_ENV%
ECHO 处于关闭状态。
然后我明白了 **生成文件不可能设置您的环境。 makefile 在 shell 的单独实例中运行命令。就像如果你打开了两个 cmd.exe windows 并且你在其中一个中设置了一个变量,它不会在另一个中设置。这与 make 的工作方式相同。 **
所以我更新了,
local:
set CONFIGOR_ENV=local ^
echo %CONFIGOR_ENV%
但它打印相同的信息
set CONFIGOR_ENV=local ^
echo %CONFIGOR_ENV%
ECHO 处于关闭状态。
我也试试那个shell
.ONESHELL:
local:
set CONFIGOR_ENV=local ^
echo %CONFIGOR_ENV%
打印:
set CONFIGOR_ENV=local ^
echo %CONFIGOR_ENV%
ECHO 处于关闭状态。
制作版本:
GNU Make 3.82.90
Built for i686-pc-mingw32
Copyright (C) 1988-2012 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.
我想知道makefile可以在windows中设置环境变量吗?
我不确定你为什么在这里使用 ^
。转义字符:在这种情况下似乎没有用。
您可以写:
local:
set CONFIGOR_ENV=local & echo %CONFIGOR_ENV%
(在 Windows 批处理文件中,&
是命令分隔符,类似于 POSIX shell 中的 ;
)或者您可以使用 .ONESHELL
,如果你的 make 版本支持它,但你应该删除 ^
;通过添加 ^
,您只需转义换行符,这样整个事情就会分配给变量;也就是说,你是 运行:
set CONFIGOR_ENV=local echo %CONFIGOR_ENV%
所以在此之后 CONFIGOR_ENV
变量的值将是 local echo
.