티스토리 뷰

golang

Golang 개발시 Makefile 사용해보기

주먹불끈 2019. 6. 24. 11:15

개요

 

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
«   2024/03   »
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
31
글 보관함