Windows용 GNU Make에서 PowerShell을 사용하는 방법
6550 단어 MakeWindowsPowerShell
소개
Windows용 GNU Make를 설치하고 기본 설정으로 실행하면 쉘이 명령 프롬프트(cmd.exe)로 실행됩니다. 어떻게 해서 Windows PowerShell (powershell.exe)로 변경할 수 없는지 조사하고 있었는데, set Powershell core as a default GNU Make shell on windows/linux 에 방법이 써 있었으므로 해 보았다.
PowerShell Core (pwsh.exe)로 변경할 수있는 것 같습니다. (이쪽은 시도하지 않았다)
환경
보충
(2021/1/10 추기) 이하, GNU Make 의 인스톨 방법에 대해 여러가지 썼지만, Chocolatey 에 make 패키지 이 있었으므로,
choco install make -y
로 인스톨 하는 쪽이 아마 빠르다.Windows에서 실행되는 GNU Make에는 몇 가지 종류가 있지만 GnuWin32은 버전이 너무 오래되었습니다. 또, 사용하고 싶은 것은 make 뿐이므로, msys2 나는 Windows에서 사용하는 쉘은 PowerShell이 좋기 때문에 cygwin 의 Windows 네이티브로 실행할 수 있는 make 를 이용하기로 했다.
또, 내 환경에는 Git for Windows 를 인스톨 하고 있으므로, Linux 라이크인 커멘드가 충돌하지 않게 make 만을 선택해 단독으로 인스톨 하기로 했다. WSL 에도 섞지 말라고 써 있는 것이고.
GNU Make 설치
다운로드
Mingw-w64 에서 x86_64-posix-seh 를 선택하고 다운로드합니다.
이 기사 작성 시점(2020/01/08)에서의 최신판은 x86_64-8.1.0-release-posix-seh-rt_v6-rev0.7z였다.
posix와 seh의 의미는 혼합하지 않는 위험 (msys2와 Cygwin과 Git For Windows를 함께 사용해서는 안됩니다)에 따르면 다음과 같습니다.
Thread : 스레드 모델. posix 또는 win32 중 하나를 선택합니다. win32 는 Windows 네이티브 함수를 사용하고 있어 빠르지만 C++ 11 이후의 thread, mutex, future 를 사용할 수 없게 된다. 특별한 이유가 없다면 posix로 좋을 것입니다.
Exception : 예외 처리 핸들링. 아키텍처에 따라 다음을 선택할 수 있습니다.
(약어)
x86_64
seh : Structured Exception Handling (Windows 네이티브. 추천)
sjlj : SetJump/LongJump
설치
다운로드한 아카이브를 적절한 경로에 압축을 풉니 다.
ex) E:\Programs\bin\mingw64
GNU Make는 mingw32-make.exe라는 파일 이름이므로 make.exe로 이름을 바꿉니다.
make 만 선별하기
E:\Programs\bin\mingw64\bin 에서 남기고 싶은 명령만 남기고 삭제(또는 후퇴)한다.
*.exe 는 뭔가 *.dll 에 의존하고 있을 가능성이 있으므로, Mingw-builds 다운로드 사이트라든지로 조사해 둔다.
make.exe
make.exe 는 단독으로도 움직이는 것 같기 때문에, 이것만 남겨 둔다.
MinGW-w64 소개
덤
gcc.exe와 g++.exe는 libwinpthread-1.dll에 의존하기 때문에 이러한 명령을 사용하려면
를 정리해 남겨 둔다.
Dependencies
PATH 통과
환경 변수의 PATH 에 E:\Programs\bin\mingw64\bin 를 추가해 둔다.
Makefile 설정
을 참고하여 SHELL과 .SHELLFLAGS를 설정했다.
Makefile# vi: set fileencoding=utf-8 noexpandtab :
SHELL := powershell.exe
.SHELLFLAGS := -NoProfile -Command
all:
Get-Date
실행 결과PS F:\Temp> make
Get-Date
2021年1月8日 22:37:15
PS F:\Temp>
이제 Windows에서도 make와 PowerShell을 사용한 자동화가 진행됩니다.
죄송합니다.
여담
GNU Make의 사용법은 에서 공개되어 있는 set Powershell core as a default GNU Make shell on windows/linux 의 무료 서적에서 공부했다. 고맙고 고맙습니다.
참고 URL
# vi: set fileencoding=utf-8 noexpandtab :
SHELL := powershell.exe
.SHELLFLAGS := -NoProfile -Command
all:
Get-Date
PS F:\Temp> make
Get-Date
2021年1月8日 22:37:15
PS F:\Temp>
GNU Make의 사용법은 에서 공개되어 있는 set Powershell core as a default GNU Make shell on windows/linux 의 무료 서적에서 공부했다. 고맙고 고맙습니다.
참고 URL
Reference
이 문제에 관하여(Windows용 GNU Make에서 PowerShell을 사용하는 방법), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/leo-s/items/44acb35fd4b1d587b0ed텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)