hoony's web study

728x90
반응형

go user group

Go 를 가지고 환율을 받아와서 DB에 넣는 것을 하나 만들어서 이제는 리눅스 서버에 배포를 할려고 보니 
Go lang 은 어떻게 build를 하는지가 궁금했습니다. 

https://pkg.go.dev/cmd/go#hdr-Build_constraints

 

go command - cmd/go - Go Packages

Go is a tool for managing Go source code. Usage: go [arguments] The commands are: bug start a bug report build compile packages and dependencies clean remove object files and cached files doc show documentation for package or symbol env print Go environmen

pkg.go.dev

위의 사이트를 처음에 들어가서 보니 
//go:build 였습니다. 
근데 //는 주석이라는 것인데 이것을  terminal에서 실행하는 것인가 하고 해보니 안 되더군요. ㅠ. ㅠ
방법은 main.go 프로젝트의 시작인 곳 상단에 두는 것이었습니다. 
제가 이미지를 캡쳐해서 보여 드릴게요 

소스 상단에 저렇게 리눅스용으로 build를 하라고 하니 정말 거짓말 처럼 build가 되더라구요. 
아, go 에서는 저렇게 쓰는구나 라고 알게 되었답니다. 역시 눈으로 보는 것보다 무엇인가를 만들다 보니 알게 되는 것 같습니다.

그럼 터미널에서는 어떻게 하는지 궁금해집니다. 

GOOS=linux go build

Go에서는  GOOS라고 하는 환경변수를 가지고 컴파일할 때 지정할 수 있습니다. 

제가 상단에 링크를 걸어둔 곳을 확인해보시면 많은 옵션을 확인할 수 있습니다. 
저는 이제 build 된 것을 이제 리눅스에서 실행을 해보고 확인을 해봐야겠습니다. 
이런 기록이 도움이 되셨으면 좋겠습니다. 

위의 옵션으로 build를 하면 리눅스에서 실행이 되지 않더라구요. ㅠ.ㅠ
다시 찾은 방법 포스팅해드립니다.

GOOS=linux GOARCH=amd64 go build

 

728x90

공유하기

facebook twitter kakaoTalk kakaostory naver band
loading