2013-05-24 3 views
4

나는 Go에서 (명령의 일부로) 사용자로부터 암호를 얻어야하는 명령 행 유틸리티를 작성하고있다. 이 작업을 수행하는 Unix 용 모듈은 gopass이며 Windows 콘솔 용으로 작성하는 방법을 알고 있습니다. 문제는 Windows 모듈이 * nix에서 빌드되지 않으며 * nix 버전이 Windows에서 빌드되지 않는다는 것입니다. Go는 전처리 지원이 부족하기 때문에 (내가 말할 수있는 한),이 접근법에 올바른 방법이 무엇인지 전혀 알지 못합니다. Go 자체가 자체 라이브러리에 대해이 작업을 수행해야하므로 가능하다는 것을 알고 있지만, 필자가 익숙한 툴링 (조건부 가져 오기/전 처리기/등)은 누락 된 것으로 보입니다.Go에서 플랫폼 특정 모듈을 처리하려면 어떻게해야합니까?

답변

8

Go에는 .go 파일에서 주석으로 지정하거나 파일 이름의 일부로 지정할 수있는 빌드 제한 조건이 있습니다.

제약 조건 집합은 대상 운영 체제 용이므로 Windows 용 파일 하나, 예를 들어 Windows 용 파일 하나를 가질 수 있습니다. 리눅스에서 두 가지 방식으로 동일한 기능을 구현합니다.

빌드 제약 조건에 대한 자세한 내용은 http://golang.org/pkg/go/build/#hdr-Build_Constraints

입니다.
관련 문제