다음과 같이 VS 도구에 대한 경로를 설정하여 명령줄에서 실행하려고 합니다.https://msdn.microsoft.com/en-us/library/x4d2c09s.aspx
관리자 권한 명령 프롬프트에서 실행 vcvarsall x64
하고 변수 내용을 확인합니다 INCLUDE
.
그런 다음 명령 프롬프트를 닫고 다시 열고 INCLUDE
변수를 확인합니다.
보시다시피 CMD를 닫으면 변경 사항이 손실되었습니다. 시스템 환경에 적용되도록 하려면 어떻게 해야 합니까?
중요한 경우 Win 8.1을 사용하고 있습니다.
답변1
실행되는 배치 파일이 Set
환경 변수를 설정하는 데 사용되기 때문입니다( C:\Program Files (x86)\Microsoft Visual Studio 12.0\VC\bin\amd64\vcvars64.bat
실행할 때 실행되는 파일 vcvarsall x64
).
그러나 Set
현재 명령줄 세션에 대한 변수만 설정합니다. Setx
명령줄 세션 간에 "고정"하려면 사용해야 합니다 .
자세한 내용은 다음 SU 질문과 답변을 확인하세요.
- PATH 및 기타 환경 변수는 무엇이며 어떻게 설정하거나 사용할 수 있나요?
- 환경 변수가 고착되지 않음
- 명령줄에서 환경 변수를 설정하고 전역적으로 고정되도록 설정
- Windows의 환경 변수에서 SETX와 SET의 차이점은 무엇입니까
댓글 후 수정:
"그러나 set 명령은 기본 스크립트에 있었습니다."
VCVarsAll은 수행하려는 단일 빌드/작업에 대한 환경을 설정하기 위해 실행되며 영구적으로 설정하기 위한 것이 아닙니다.
Visual Studio는 도구에 액세스하기 위한 특정 "명령 프롬프트" 항목을 설치하고(링크에서: "...그런 다음 기본 도구 또는 교차 도구 명령 프롬프트 중 하나를 선택합니다.") 해당 특수 명령 프롬프트 바로 가기는 다음을 실행합니다. 해당 바로가기를 사용할 때 모든 것이 올바르게 설정되었는지 확인하기 위한 배치 파일입니다.
이러한 바로가기를 자신만의 것으로 복제할 수 있습니다.
배치 파일을 실행하는 새 바로 가기를 만든 다음 cmd /k "C:\Program Files (x86)\Microsoft Visual Studio 12.0\VC\vcvarsall.bat" x64
(x64를 환경 옵션으로 사용) 명령줄 창을 열어 둡니다.
그런 다음 도구를 사용하려는 경우 해당 바로 가기를 사용하여 명령 프롬프트를 엽니다.
답변2
예, 환경을 파일로 추출할 수 있습니다.
cmd /C "C:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise\VC\Auxiliary\Build\vcvars64.bat" && set > d:\t.txt
그런 다음 이 파일을 makefile에 직접 포함하거나 필요에 맞는 다른 옵션을 사용할 수 있습니다.