cmd에서 환경 변수를 설정해도 효과가 없습니다.

cmd에서 환경 변수를 설정해도 효과가 없습니다.

다음과 같이 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 질문과 답변을 확인하세요.

댓글 후 수정:

"그러나 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에 직접 포함하거나 필요에 맞는 다른 옵션을 사용할 수 있습니다.

관련 정보