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 x64
no prompt de comando elevado e verifico o conteúdo da INCLUDE
variável:
Então fecho o prompt de comando, abro novamente e verifico a INCLUDE
variável:
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 Set
para 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 Set
apenas 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:
- O que são PATH e outras variáveis de ambiente e como posso defini-las ou usá-las?
- Variável de ambiente não aderindo
- Defina variáveis de ambiente na linha de comando - e faça com que elas permaneçam globalmente
- Qual é a diferença entre SETX e SET em variáveis de ambiente no Windows
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.