Go 바이너리 컴파일, 실행 및 실행 행 명령

3532 단어 Go 개발
설치 패키지 생성
시스템 실행
go build  (-x               )

섞어서 편집하다
#       linux windows    ,        :
$gox -os "windows linux" -arch amd64

  1.  window 64 :
  	gox -osarch="windows/amd64" ./
  2.  mac 64 :
  	gox -osarch = "darwin/amd64" ./
  3.  Linux 64 :
  	gox -osarch="linux/amd64" ./

실행 명령 패키지
  • linux(./main 컴파일된 파일은 채집할 수 있습니다./main & 백엔드 실행)
  • Windows(main.exe GoModTest.exe -name 123)
  • 참고:
      :           go  ,a.go,b.go,c.go,  main a.go ,  go run a.go, undefined   12
      :go run          ,             a.go  ,                      
    (   go build       ,             )123
        :go run a.go b.go c.go
    

    (중점) 사용자 정의 상호작용 명령
    1. 로드된 프로파일 지정
    ./main  -c           
    

    2. 버전 번호 가져오기 - v
    [root@hu mq]# ./mqbeat_linux_amd64 -v
     1.0.0
    

    main.go 코드는 다음과 같습니다
    if util.SliceContainString(os.Args, "-v") {
    	fmt.Printf("%v
    ", config.Version) os.Exit(0) } os.Args E:\Workplace_Go\src\GoModTest>go run main.go -v 200 [C:\Users\Admin\AppData\Local\Temp\go-build184099962\b001\exe\main.exe -v 200]

    3. 도움말 정보 얻기 - h
    [root@hu mq]# ./mqbeat_linux_amd64 -h
    Usage of Websphere_MQbeat:
      -E value
        	Configuration overwrite (default null)
      -N	Disable actual publishing for testing
      -T	test mode with console output
      -c value
        	Configuration file, relative to path.config (default beat.yml)
      -configtest
        	Test configuration and exit.
      -cpuprofile string
        	Write cpu profile to file
      -httpprof string
        	Start pprof http server
      -memprofile string
        	Write memory profile to this file
      -path.config value
        	Configuration path
      -path.data value
        	Data path
      -path.home value
        	Home path
      -path.logs value
        	Logs path
      -reload
        	reload config
      -setup
        	Load the sample Kibana dashboards
      -strict.perms
        	Strict permission checking on config files (default true)
      -version
        	Print the version and exit
    Informations:
      Version= 1.0.0
      BuildCommit= 
      BuildTime= 2019/06/26
      GoVersion= 1.12.1
    
    

    main.go 코드는 다음과 같습니다
    	if util.SliceContainString(os.Args, "-h") {
    		buf := bytes.NewBufferString("Usage of " + config.AppName + ":
    ") flag.CommandLine.SetOutput(buf) flag.PrintDefaults() fmt.Printf("%v", buf.String()) fmt.Println("Informations:") fmt.Printf(" Version= %v
    ", config.Version) fmt.Printf(" BuildCommit= %v
    ", config.BuildCommit) fmt.Printf(" BuildTime= %v
    ", config.BuildTime) fmt.Printf(" GoVersion= %v
    ", config.GoVersion) os.Exit(0) }

    config.go 코드는 다음과 같습니다
    var (
    	AppName     = "MQbeat"
    	Version     = "1.0.0"
    )
    

    대화식 명령줄 매개변수 Flag:
    go 표준 라이브러리에 패키지 제공:flag, 명령행 해석 용이
    1.flag.Parse ()main 함수체의 첫 줄에 넣기
    var name string
    flag.StringVar(&name, "name", "everyone", "The greeting object.")
    flag.Parse()
    fmt.Println(name)
    
    flag.BoolVar(&h, "h", false, "this help")
    flag.BoolVar(&v, "v", false, "show version and exit")
    
    flag.Int、flag.Bool、flag.String            。
           :
    &name:      ,    name。
       arg      ,       ,       。
       arg     ,                  ,        。
       arg         ,       -arg         ,  -help。
    

    좋은 웹페이지 즐겨찾기