티스토리 뷰
개요
Makefile 을 잘 활용하면 Go build, run, test 등의 작업이 한결 쉬워진다.
일종의 build 와 link 에 대한 script 라고 보면 되겠다.
(주의) 윈도우 10 에서만 실행, 테스트 한 것임
참고링크
- YouTube: https://youtu.be/QztvWSCbQLU
- 위 YouTube 의 Blogpost: https://tutorialedge.net/golang/makefiles-for-go-developers/
- 한글 Blog: https://www.tuwlab.com/ece/27193
- Chocolatey: https://chocolatey.org/
준비. make.exe 를 Windows 에서 설치하기
make.exe 파일이 필요하다.
Windows 에서 설치하려면 Chocolatey 를 통해 설치하는게 가장 편하다. 윈도우용 패키지 매니이다.
- Chocolatey 설치 링크: https://chocolatey.org/install
1) 관리자 모드로 command 창이나 powershell 을 연다.
2) 각각에 맞는 명령을 카피해서 실행한다. (위 링크에 있음)
Command 를 관리자 모드로 열였다면 |
@"%SystemRoot%\System32\WindowsPowerShell\v1.0\powershell.exe" -NoProfile -InputFormat None -ExecutionPolicy Bypass -Command "iex ((New-Object System.Net.WebClient).DownloadString('https://chocolatey.org/install.ps1'))" && SET "PATH=%PATH%;%ALLUSERSPROFILE%\chocolatey\bin" |
PowerShell 을 관리자 모드로 열였다면 |
Set-ExecutionPolicy Bypass -Scope Process -Force; iex ((New-Object System.Net.WebClient).DownloadString('https://chocolatey.org/install.ps1')) |
1) choco -v 하면 chocolatey 설치를 확인 할 수 있다
2) choco install make 하면 make 설치가 가능하다. 이미 설치했기에 아래와 같이 나왔다.
3) make -v 하면 make 설치를 확인할 수 있다. 다른 경로에 make 가 이미 있어서 경로까지 넣어서 실행시켰다.
참고. where make 와 같이 명령을 넣으면 make.exe 파일이 어디에 설치되어 있는지 확인이 가능하다.
Makefile 가지고 놀아보기
아래 링크를 참고하여 따라해보았다.
- YouTube: https://youtu.be/QztvWSCbQLU
- 위 YouTube 의 Blogpost: https://tutorialedge.net/golang/makefiles-for-go-developers/
* 실습해본 소스는 여기: https://github.com/nicewook/makefile-with-golang
Makefile 은 뭘까?
Golang 을 예를 들면 go run, go build, go test 같은걸 많이 할거다. 그런걸 모아서 자동으로 실행되게 해둔것이다. scripting ?!
예제로 쓸 녀석들
아래와 같이 파일들을 만들어 보았다.
이런 명령들이 가능하겠다.
1) go run hello.go 실행시켜욧! 2) go build -o bin\hello.exe hello.go 실행파일을 bin 폴더에 hello.exe 라고 만들어요 3) go test -v test 를 해보아요 |
make 실행
이걸 Makefile 로 만들어서 아래와 같이 실행할 수 있다.
- @ 를 넣어주면 명령줄을 출력하지 않는다. (참고)
- make all 을 보면 위의 항목들을 몇 개 엮어서 실행할 수 있다는 걸 알 수 있다.
|
|
크로스 컴파일 (Cross compile)
(참고)크로스 컴파일이란 뭘까?
- 링크: https://brownbears.tistory.com/68
- 한 줄로 말하면, 윈도우에서 개발하는데 리눅스용 으로 빌드하는 것이다. 개발은 윈도우에서하고 빌드한 녀석의 실행은 리눅스에서 하려는 거
아래와 같이 OS 와 Architecture 를 설정해주면 된다. 이때 GOOS, GOARCH 는 실행되는 순간에만 반영되며, 환경변수로 영구저장되지는 않는다.
make cc 라고 실행하면 왼쪽과 같이 각각의 OS, Archtecture 에 맞는 실행파일이 생성된 것이 보일 것이다.
참고
1) Linux 개발 환경이라면 아래의 cclinux 와 같이 하면 된다.
2) 윈도우 10 에서의 주의 사항은 다음과 같다.
- 명령들 사이는 & 로 이어준다.
- set 을 먹여줘야 한다.
- set 명령의 맨 뒤에는 공백이 없이 &가 와야 한다.
→ 공백이 있으면 공백까지 설정이 되어버린다.
'golang' 카테고리의 다른 글
gRPC Error in Golang (0) | 2019.06.27 |
---|---|
gRPC Deadline (0) | 2019.06.26 |
Maximum Subarray Problem (0) | 2019.06.19 |
Concurrent Logging - in Golang (0) | 2019.06.17 |
gRPC - Go Quick Start (1) | 2019.06.10 |
- Total
- Today
- Yesterday
- 잡학툰
- 노션
- OpenAI
- 클린 애자일
- 체호프
- API
- Bug
- golang
- postgres
- github
- 제이펍
- 독서후기
- ChatGPT
- 영화
- 독서
- pool
- JIRA
- 2023
- websocket
- folklore
- Shortcut
- agile
- intellij
- Gin
- bun
- notion
- 인텔리제이
- solid
- strange
- go
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |