Definir variáveis ​​de ambiente no cmd não tem efeito

Definir variáveis ​​de ambiente no cmd não tem efeito

Estou tentando configurar caminhos para ferramentas VS para executá-las na linha de comando, conformehttps://msdn.microsoft.com/en-us/library/x4d2c09s.aspx

Eu corro vcvarsall x64no prompt de comando elevado e verifico o conteúdo da INCLUDEvariável:

insira a descrição da imagem aqui

Então fecho o prompt de comando, abro novamente e verifico a INCLUDEvariável:

insira a descrição da imagem aqui

Como você pode ver, as alterações foram perdidas quando fechei o CMD. Como posso garantir que eles cheguem ao ambiente do sistema?

Estou usando o Win 8.1, se for importante.

Responder1

É porque os arquivos em lote que ele executa estão usando Setpara definir as variáveis ​​de ambiente ( C:\Program Files (x86)\Microsoft Visual Studio 12.0\VC\bin\amd64\vcvars64.baté o que é executado quando você executa vcvarsall x64).

Mas Setapenas define variáveis ​​para a sessão de linha de comando atual. Você precisa usá Setx-lo para "grudar" entre as sessões de linha de comando.

Para obter mais informações, confira estas outras perguntas e respostas do SU:

Editar após comentários:

"Mas os comandos definidos estavam no script padrão"

VCVarsAll deve ser executado para configurar o ambiente para a única construção/ação que você está prestes a executar, não para defini-los permanentemente.

O Visual Studio instala entradas específicas de "prompt de comando" para acessar as ferramentas (no seu link: "... e, em seguida, escolha um dos prompts de comando de ferramenta nativa ou de ferramenta cruzada.") e esses atalhos especiais de prompt de comando executam um/ o arquivo em lote para garantir que tudo esteja correto ao usar esses atalhos.

Você pode replicar esses atalhos com seus próprios...

Faça um novo atalho para cmd /k "C:\Program Files (x86)\Microsoft Visual Studio 12.0\VC\vcvarsall.bat" x64, que executará o arquivo em lote (usando x64 como opção de ambiente) e, em seguida, manterá a janela da linha de comando aberta.

Em seguida, use esse atalho para abrir o prompt de comando quando quiser usar as ferramentas.

Responder2

Sim, você pode extrair o ambiente para o arquivo:

cmd /C "C:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise\VC\Auxiliary\Build\vcvars64.bat" && set > d:\t.txt

Então você pode incluir este arquivo diretamente no makefile ou usar outra opção que atenda às suas necessidades.

informação relacionada