Microsoft MVP성태의 닷넷 이야기
글쓴 사람
정성태 (techsharer at outlook.com)
홈페이지
첨부 파일
 

최신의 Visual C++ 컴파일러 도구를 사용하는 방법

차기 버전의 Visual Studio를 기다릴 필요 없이, 가장 최신의 Visual C++ 컴파일러 도구를 사용하는 방법이 있습니다.

Try out the latest C++ compiler toolset without waiting for the next update of Visual Studio
; https://devblogs.microsoft.com/cppblog/try-out-the-latest-c-compiler-toolset-without-waiting-for-the-next-update-of-visual-studio/

방법은, nuget.exe 실행 파일을 다운로드 받고,

NuGet - Installing
; https://docs.nuget.org/consume/command-line-reference
; https://dist.nuget.org/win-x86-commandline/latest/nuget.exe

명령행에서 VisualCppTools의 Prerelease 버전을 다운로드하는 것입니다.

D:\Tools>nuget install VisualCppTools -source https://vcppdogfooding.azurewebsites.net/nuget/ -Prerelease
Feeds used:
  https://vcppdogfooding.azurewebsites.net/nuget/

  GET https://vcppdogfooding.azurewebsites.net/nuget/FindPackagesById()?id='VisualCppTools'
  OK https://vcppdogfooding.azurewebsites.net/nuget/FindPackagesById()?id='VisualCppTools' 576ms
Attempting to gather dependency information for package 'VisualCppTools.14.0.24422-Pre' with respect to project 'D:\Tools', targeting 'Any,Version=v0.0'
Attempting to resolve dependencies for package 'VisualCppTools.14.0.24422-Pre' with DependencyBehavior 'Lowest'
Resolving actions to install package 'VisualCppTools.14.0.24422-Pre'
Resolved actions to install package 'VisualCppTools.14.0.24422-Pre'
  GET https://vcppdogfooding.azurewebsites.net/api/v2/package/visualcpptools/14.0.24422-pre
  OK https://vcppdogfooding.azurewebsites.net/api/v2/package/visualcpptools/14.0.24422-pre 663ms
Acquiring lock for the installation of VisualCppTools 14.0.24422-Pre
Acquired lock for the installation of VisualCppTools 14.0.24422-Pre
Installing VisualCppTools 14.0.24422-Pre.
Completed installation of VisualCppTools 14.0.24422-Pre
Adding package 'VisualCppTools.14.0.24422-Pre' to folder 'D:\Tools'
Added package 'VisualCppTools.14.0.24422-Pre' to folder 'D:\Tools'
Successfully installed 'VisualCppTools 14.0.24422-Pre' to D:\Tools

그럼, "D:\Tools\VisualCppTools.14.0.24422-Pre"와 같은 식으로 하위에 새로운 Visual C++ 도구가 위치합니다. 단지 파일 복사만 된 것일 뿐 설치 작업이 있었던 것은 아니기 때문에 그냥 위의 폴더를 다른 곳으로 복사해도 됩니다. 제 경우에는 "E:\VisualCppTools.14.0.24422-Pre" 폴더로 복사했습니다.

이제 명령행 환경을 설정하는 VsDevCmd.bat 파일에 새로운 Visual C++ 도구를 인식시키면 되는데,

C:\Program Files (x86)\Microsoft Visual Studio 14.0\Common7\Tools\VsDevCmd.bat

(-Prerelease이기 때문에) 기존 것을 완전히 교체하기는 좀 그렇고 VsDevCmd.bat 파일을 복사해 VsDevCmd-Pre.bat 파일을 만든 후 다음과 같이 VCInstallDir을 변경시켜줍니다.

@call :GetVSCommonToolsDir
@if "%VS140COMNTOOLS%"=="" goto error_no_VS140COMNTOOLSDIR

@call "%VS140COMNTOOLS%VCVarsQueryRegistry.bat" 32bit No64bit

@if "%VSINSTALLDIR%"=="" goto error_no_VSINSTALLDIR
@if "%FrameworkDir32%"=="" goto error_no_FrameworkDIR32
@if "%FrameworkVersion32%"=="" goto error_no_FrameworkVer32
@if "%Framework40Version%"=="" goto error_no_Framework40Version

set VCInstallDir=e:\VisualCppTools.14.0.24422-Pre\lib\native\

...[생략]...

그런 다음, 이런 내용을 갖는 단축 아이콘을 만들어 두면 끝!

"C:\Windows\System32\cmd.exe" /k ""C:\Program Files (x86)\Microsoft Visual Studio 14.0\Common7\Tools\VsDevCmd-Pre.bat""

위의 단축 아이콘을 실행할 때마다 이렇게 새로운 도구로 설정된 Visual C++ 빌드 환경이 동작합니다.

add_new_vcpp_build_tools_1.png

참고로, 버전 관련 상숫값은 다음과 같습니다.

_MSC_VER == 1900
_MSC_BUILD == 0
_MSC_FULL_VER == 190024422




[이 글에 대해서 여러분들과 의견을 공유하고 싶습니다. 틀리거나 미흡한 부분 또는 의문 사항이 있으시면 언제든 댓글 남겨주십시오.]







[최초 등록일: ]
[최종 수정일: 12/21/2022]

Creative Commons License
이 저작물은 크리에이티브 커먼즈 코리아 저작자표시-비영리-변경금지 2.0 대한민국 라이센스에 따라 이용하실 수 있습니다.
by SeongTae Jeong, mailto:techsharer at outlook.com

비밀번호

댓글 작성자
 



2022-12-21 01시41분
On the large number of ways of expressing Microsoft Visual C++ compiler versions
; https://devblogs.microsoft.com/oldnewthing/20221219-00/?p=107601
정성태

... 16  17  18  19  20  21  22  23  24  25  26  27  28  [29]  30  ...
NoWriterDateCnt.TitleFile(s)
13216정성태1/12/202311932디버깅 기술: 184. windbg - 32비트 프로세스의 메모리 덤프인 경우 !peb 명령어로 나타나지 않는 환경 변수
13215정성태1/11/202314973Linux: 56. 리눅스 - /proc/pid/stat 정보를 이용해 프로세스의 CPU 사용량 구하는 방법 [1]
13214정성태1/10/202313958.NET Framework: 2087. .NET 6부터 SourceGenerator와 통합된 System.Text.Json [1]파일 다운로드1
13213정성태1/9/202312232오류 유형: 836. docker 이미지 빌드 시 "RUN apt install ..." 명령어가 실패하는 이유
13212정성태1/8/202313614기타: 85. 단정도/배정도 부동 소수점의 정밀도(Precision)에 따른 형변환 손실
13211정성태1/6/202313405웹: 42. (https가 아닌) http 다운로드를 막는 웹 브라우저
13210정성태1/5/202312195Windows: 219. 윈도우 x64의 경우 0x00000000`7ffe0000 아래의 주소는 왜 사용하지 않을까요?
13209정성태1/4/202311574Windows: 218. 왜 윈도우에서 가상 메모리 공간은 64KB 정렬이 된 걸까요?
13208정성태1/3/202312439.NET Framework: 2086. C# - Windows 운영체제의 2MB Large 페이지 크기 할당 방법파일 다운로드1
13207정성태12/26/202212914.NET Framework: 2085. C# - gpedit.msc의 "User Rights Assignment" 특권을 코드로 설정/해제하는 방법 [1]파일 다운로드1
13206정성태12/24/202213082.NET Framework: 2084. C# - GetTokenInformation으로 사용자 SID(Security identifiers) 구하는 방법 [4]파일 다운로드1
13205정성태12/24/202212232.NET Framework: 2083. C# - C++과의 연동을 위한 구조체의 fixed 배열 필드 사용 (2)파일 다운로드1
13204정성태12/22/202211414.NET Framework: 2082. C# - (LSA_UNICODE_STRING 예제로) CustomMarshaler 사용법파일 다운로드1
13203정성태12/22/202211842.NET Framework: 2081. C# Interop 예제 - (LSA_UNICODE_STRING 예제로) 구조체를 C++에 전달하는 방법파일 다운로드1
13202정성태12/21/202213179기타: 84. 직렬화로 설명하는 Little/Big Endian파일 다운로드1
13201정성태12/20/202214298오류 유형: 835. PyCharm 사용 시 C 드라이브 용량 부족
13200정성태12/19/202212295오류 유형: 834. 이벤트 로그 - SSL Certificate Settings created by an admin process for endpoint
13199정성태12/19/202212335개발 환경 구성: 656. Internal Network 유형의 스위치로 공유한 Hyper-V의 VM과 호스트가 통신이 안 되는 경우
13198정성태12/18/202212584.NET Framework: 2080. C# - Microsoft.XmlSerializer.Generator 처리 없이 XmlSerializer 생성자를 예외 없이 사용하고 싶다면?파일 다운로드1
13197정성태12/17/202212141.NET Framework: 2079. .NET Core/5+ 환경에서 XmlSerializer 사용 시 System.IO.FileNotFoundException 예외 발생하는 경우파일 다운로드1
13196정성태12/16/202212730.NET Framework: 2078. .NET Core/5+를 위한 SGen(Microsoft.XmlSerializer.Generator) 사용법
13195정성태12/15/202213087개발 환경 구성: 655. docker - bridge 네트워크 모드에서 컨테이너 간 통신 시 --link 옵션 권장 이유
13194정성태12/14/202213358오류 유형: 833. warning C4747: Calling managed 'DllMain': Managed code may not be run under loader lock파일 다운로드1
13193정성태12/14/202213537오류 유형: 832. error C7681: two-phase name lookup is not supported for C++/CLI or C++/CX; use /Zc:twoPhase-
13192정성태12/13/202213457Linux: 55. 리눅스 - bash shell에서 실수 연산
13191정성태12/11/202215342.NET Framework: 2077. C# - 직접 만들어 보는 SynchronizationContext파일 다운로드1
... 16  17  18  19  20  21  22  23  24  25  26  27  28  [29]  30  ...