백엔드 개발 Golang golang을 컴파일하는 방법

golang을 컴파일하는 방법

Dec 26, 2019 am 09:43 AM
golang

golang을 컴파일하는 방법

Go 언어에서 사용되는 go 빌드 명령은 주로 코드를 컴파일하는 데 사용됩니다. 패키지 컴파일 프로세스 중에 필요한 경우 패키지와 관련된 패키지도 동시에 컴파일됩니다.

go 빌드에는 매개변수 없는 컴파일, 파일 목록 컴파일, 지정된 패키지 컴파일 등 다양한 컴파일 방법이 있습니다. 이러한 방법을 사용하여 실행 파일을 출력할 수 있습니다.

go 매개변수 없는 컴파일 빌드

GOPATH와 관련된 코드의 디렉터리 관계는 다음과 같습니다.

.
└── src
  └── Chapter11
  └── gobuild
  ├─ ─ lib. go
└── main.go

main.go 코드는 다음과 같습니다.

package main

import (
    "fmt"
)

func main() {

    // 同包的函数
    pkgFunc()

    fmt.Println("hello world")
}

lib.go 코드는 다음과 같습니다.

package main
import "fmt"
func pkgFunc() {
    fmt.Println("call pkgFunc")
}

소스 코드에 GOPATH에 의존하는 패키지 참조가 없으면 다음과 같습니다. 소스 코드는 매개변수 없는 go build를 사용할 수 있습니다. 형식은 다음과 같습니다.

go build

아래와 같이 코드가 있는 디렉터리(./src/chapter11/gobuild)에서 go build 명령을 사용합니다.

$ cd src/chapter11/gobuild/
$ go build
$ ls
gobuild lib .go main.go
$ ./gobuild
call pkgFunc
hello world

명령줄 지침과 출력 지침은 다음과 같습니다.

Line 1, 이 소스 코드 디렉터리로 이동합니다. 예.

라인 2, go build가 컴파일을 시작하면 현재 디렉터리에서 go 소스 코드를 검색합니다. 이 예에서 go build는 lib.go와 main.go라는 두 개의 파일을 찾습니다. 이 두 파일을 컴파일하면 현재 디렉터리 이름의 실행 파일이 생성되어 현재 디렉터리에 배치됩니다. 여기서 실행 파일은 go build입니다.

라인 3과 4는 현재 디렉터리의 파일을 나열합니다. 컴파일이 성공하고 go build 실행 파일이 출력됩니다.

5번째 줄, 현재 디렉터리에서 실행 파일 go build를 실행합니다.

라인 6과 7, go build를 실행한 후의 출력 내용입니다.

go build+file list

동일한 디렉터리에서 여러 소스 코드 파일을 컴파일하는 경우 go build 후 여러 파일 이름을 제공할 수 있습니다. go build는 이러한 소스 코드를 컴파일하고 "go build+file" 실행 파일을 출력합니다. list" 형식은 다음과 같습니다.

go build file1.go file2.go……

코드가 있는 디렉터리(./src/chapter11/gobuild)에서 go build를 사용하고, go build 후 컴파일할 소스코드 파일명을 추가합니다. 코드는 다음과 같습니다. 다음:

$ go build main.go lib.go
$ ls
lib.go main main.go
$ ./main
call pkgFunc
hello world
$ go build lib.go main.go
$ ls
lib lib.go main main.go

명령줄 지침과 출력 지침은 다음과 같습니다.

라인 1은 go 빌드 후 파일 목록을 추가하고 컴파일해야 하는 Go 소스 코드를 선택합니다.

라인 2와 3은 컴파일 후 현재 디렉터리의 파일을 나열합니다. 이번에는 실행 파일 이름이 main이 됩니다.

라인 4~6, 메인 파일을 실행하고 예상되는 출력을 얻습니다.

7번째 줄, lib.go가 목록의 맨 위에 오도록 파일 목록의 순서를 조정해 보세요.

라인 8과 9에서는 lib 실행 파일이 컴파일 결과에 나타납니다.

"go build+file list" 방식으로 컴파일할 경우 실행 파일은 기본적으로 파일 목록의 첫 번째 소스 코드 파일을 출력용 실행 파일 이름으로 선택합니다.

go build+package

GOPATH 설정 후, 패키지 이름을 기준으로 "go build+package"를 직접 컴파일할 수 있습니다. 패키지에 있는 파일을 추가(추가)하거나 삭제(삭제)해도 컴파일이 완료됩니다. 지침은 영향을 받지 않습니다.

1) GOPATH를 기준으로 코드 위치와 소스 코드

의 디렉터리 관계는 다음과 같습니다.

.
└── src
└── Chapter11
└──goinstall
├── main.go
└── mypkg
└── mypkg.go

main.go 코드는 다음과 같습니다.

package main
import (
    "chapter11/goinstall/mypkg"
    "fmt"
)
func main() {
    mypkg.CustomPkgFunc()
    fmt.Println("hello world")
}

mypkg.go 코드는 다음과 같습니다.

package mypkg
import "fmt"
func CustomPkgFunc() {
    fmt.Println("call CustomPkgFunc")
}

2) 패키지 명령으로 컴파일

다음 명령을 실행하여 컴파일합니다. 패키지별 goinstall 코드:

$ import GOPATH=/home/davy/golangbook/code
$ go build -o main Chapter11/goinstall
$ ./goinstall
call CustomPkgFunc
hello world

코드 설명은 다음과 같습니다. :

라인 1, 환경 변수 GOPATH를 설정합니다. 여기서 경로는 작성자의 디렉터리이며 GOPATH는 실제 디렉터리에 따라 설정할 수 있습니다.

라인 2, -o 실행은 출력 파일을 main으로 지정하고 그 뒤에 컴파일할 패키지 이름을 지정합니다. 패키지 이름은 GOPATH 아래의 src 디렉터리를 기준으로 시작됩니다.

라인 3~5, 컴파일이 성공하고 main을 실행한 후 예상되는 출력을 얻습니다.

더 많은 golang 지식을 알고 싶다면 golang tutorial 칼럼을 주목해주세요.

위 내용은 golang을 컴파일하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.

핫 AI 도구

Undress AI Tool

Undress AI Tool

무료로 이미지를 벗다

Undresser.AI Undress

Undresser.AI Undress

사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover

AI Clothes Remover

사진에서 옷을 제거하는 온라인 AI 도구입니다.

Clothoff.io

Clothoff.io

AI 옷 제거제

Video Face Swap

Video Face Swap

완전히 무료인 AI 얼굴 교환 도구를 사용하여 모든 비디오의 얼굴을 쉽게 바꾸세요!

뜨거운 도구

메모장++7.3.1

메모장++7.3.1

사용하기 쉬운 무료 코드 편집기

SublimeText3 중국어 버전

SublimeText3 중국어 버전

중국어 버전, 사용하기 매우 쉽습니다.

스튜디오 13.0.1 보내기

스튜디오 13.0.1 보내기

강력한 PHP 통합 개발 환경

드림위버 CS6

드림위버 CS6

시각적 웹 개발 도구

SublimeText3 Mac 버전

SublimeText3 Mac 버전

신 수준의 코드 편집 소프트웨어(SublimeText3)

뜨거운 주제

PHP 튜토리얼
1598
276
웹 API의 Golang과 Python의 성능 차이 이해 웹 API의 Golang과 Python의 성능 차이 이해 Jul 03, 2025 am 02:40 AM

golangofferssuperiorperperperperferforperformance, nativeconcurrencyviagoroutines 및 lefficientresourceusage, makingitidealforhigh-traffic, 2.python, whileslowerduetointerpretationandghilegil, arrethecoSystem, andisbettersuitedfori/o-ko

메모리 풋 프린트 비교 : Golang 및 Python에서 동일한 웹 서비스 워크로드 실행 메모리 풋 프린트 비교 : Golang 및 Python에서 동일한 웹 서비스 워크로드 실행 Jul 03, 2025 am 02:32 AM

gousessestificallystythemorythanpythonphenningwhenningwebservicesduetolangugedesignandconcurrencymodeldifferences.1.go'sgoroutinesarelightweightswithminstackoverhead

인터페이스 설명에 대한 Golang 포인터 인터페이스 설명에 대한 Golang 포인터 Jul 21, 2025 am 03:14 AM

인터페이스는 포인터 유형이 아니며 동적 유형과 값의 두 포인터가 포함되어 있습니다. 1. 인터페이스 변수는 특정 유형의 유형 디스크립터 및 데이터 포인터를 저장합니다. 2. 인터페이스에 포인터를 할당 할 때 포인터의 사본을 저장하고 인터페이스 자체는 포인터 유형이 아닙니다. 3. 인터페이스가 nil인지 여부는 동시에 판단되어야한다. 4. 메소드 수신기가 포인터 인 경우, 포인터 유형 만 인터페이스를 실현할 수 있습니다. 5. 실제 개발에서 인터페이스의 값 사본과 포인터 전송의 차이에주의하십시오. 이것을 이해하면 런타임 오류를 피하고 코드 보안을 향상시킬 수 있습니다.

Golang에서 쉘 명령을 실행하는 방법 Golang에서 쉘 명령을 실행하는 방법 Jul 07, 2025 am 12:47 AM

GO 언어로 쉘 명령을 실행하면 표준 라이브러리 OS/EXEC를 통해 구현할 수 있습니다. 기본 방법은 exec.command ()를 사용하여 명령 객체를 만들고 rall output ()를 만들기 위해 결과를 얻는 것입니다. 1. 간단한 명령을 실행할 때 명령 객체를 작성하고 출력을 얻으려면 output ()을 호출하십시오. 2. 실시간 출력이 필요한 경우 stdoutpipe와 stderrpipe를 사용하여 실행 중에 실행하고 인쇄하십시오. 3. 파이프 라인 또는 리디렉션을 포함하는 복잡한 명령의 경우 분석 및 처리를 위해 /bin /sh-c에 양도 될 수 있습니다. 4. 보안 측면에서 사용자 입력을 접합하지 않으면 매개 변수 목록을 전달하는 것이 좋습니다. 5. 제어 명령 배경 작업은 start () 및 Wait ()를 결합하여 달성 할 수 있습니다.

Golang에서 표준 라이브러리 로깅의 대안은 무엇입니까? Golang에서 표준 라이브러리 로깅의 대안은 무엇입니까? Aug 05, 2025 pm 08:36 PM

fornewgo1.21 프로젝트, audesLogforOfficialStructuredLoggingSupport; 2. forhigh-performance-productionservices, chelectizaporogerduetotheirspeedandlowallocations; 3. foreaseofuseandrichintegrationslikeslackorsentryhooks, logrusisidealdowerperformance; 4

Golang 서비스에서 API 버전 작성에 대한 모범 사례는 무엇입니까? Golang 서비스에서 API 버전 작성에 대한 모범 사례는 무엇입니까? Aug 04, 2025 pm 04:50 PM

useurlpathversioning like/api/v1forclear, roundable 및 developer 친화적 인 버전 .2

Golang의 MongoDB와 같은 NOSQL 데이터베이스 작업 방법 Golang의 MongoDB와 같은 NOSQL 데이터베이스 작업 방법 Aug 03, 2025 pm 03:55 PM

mongodbgo 드라이버를 설치하고 mongo.connect ()를 사용하여 연결을 설정하여 핑을 통해 연결을 성공적으로 수행 할 수 있습니다. 2. BSON 태그가있는 GO 구조를 정의하여 MongoDB 문서를 매핑하고 선택적으로 Primitive.Objectid를 ID 유형으로 사용합니다. 3. InsertOne을 사용하여 단일 문서를 삽입하고 단일 문서를 찾아서 Mongo.errnodocuments 오류를 처리하고, 문서를 업데이트하고, 문서를 삭제하고, COOPERATES와 COOPERATES를 찾으려면 여러 문서를 얻으려면; 4. 요청 매달려 피하기 위해 항상 시간 초과 컨텍스트를 사용하고 Mon을 재사용하십시오.

Golang의 구조물은 무엇입니까? Golang의 구조물은 무엇입니까? Jul 30, 2025 am 03:33 AM

점성력이있는 정의 된 DatatatypethoutGroupsRoupSPreliTEDSTOMODELLEAL-WORLDENTITIE.1.ITISTYTETHETYWORDEKKEYWORDKEYWORDECKYWORDOWNETHURCTUCTEMANEANDALISTOFFILDS.2.StructScancontainfieldsofdifferentDatatatypes

See all articles