Go入门学习笔记三:Go语言程序的编译和运行

  • 原创
  • 作者:程序员三丰
  • 发布时间:2021-07-20 10:31
  • 浏览量:1076
Go语言是编译型的静态语言(和C语言一样),所以在Go语言运行之前,先要将其编译成二进制的可执行文件。可以通过Go语言提供的go build或者go run命令对Go语言程序进行编译。go build 命令可以将Go语言程序代码编译成二进制的可执行文件,但是需要我们手动运行该二进制文件;go run命令则更加方便,它会在编译后直接运行Go语言程序,编译过程中会产生一个临时文件,但不会生成可执行文件,这个特点很适合用来调试程序。

Go语言程序的编译和运行

代码准备

  • 创建 demo.go 文件,并写入以下代码:

    package main
    import (
        "fmt"
    )
    func main() {
        fmt.Println("Hello World!")
    }
    

go build 命令

  • go build命令用来启动编译,他可以将Go语言程序与相关依赖编译成一个可执行文件。其语法格式如下:

    go build filename
    

    其中 filename 为所需要的参数,可以是一个或多个以空格为间隔的Go源文件名, 也可以省略不写。

  • 执行 go build 命令时,提供不同的参数执行结果也是不同的。

    • 当参数不为空时

      如果 filename 为同一 main 包下的所有源文件名(一个或多个),编译器将生成一个与第一个 filename 同名的可执行文件 (如执行 go build first.go second.go three.go 则会生成一个 abc.exe 文件);

      如果 filename 为非 main 包下的源文件名,编译器将只对该包进行语法检查,不生成可执行文件。

      示例:

      D:\2www\go
      λ ls
      bin/  demo.go  pkg/
      
      D:\2www\go
      λ go build demo.go # 执行go build
      
      D:\2www\go
      λ ls
      bin/  demo.exe*  demo.go  pkg/ # 生成了exe 文件
      
      D:\2www\go
      λ demo.exe # 执行 exe 文件
      Hello World!
      
    • 当参数为空时 — 执行遇到mod相关报错,后续实践通过后,更新代码示例

      如果当前目录下存在 main 包,则会生成一个与当前目录名同名的 “目录名.exe” 可执行文件(如在hello目录中执行 go build 命令时,会生成 hello.exe 文件);

      如果不存在 main 包,则只对当前目录下的程序源码进行语法检查,不会生成可执行文件。

    • go build 命令只有在执行出错的情况下才会有信息返回,执行成功的话是没有信息返回的,但是会在当前目录下生成一个相应的 exe 可执行文件。

go run 命令

  • go run 命令将编译和执行指令合二为一,会在编译之后立即执行 go 语言程序,但不会生成二进制文件。

  • go run 语法格式:

    go run filename
    

    其中 filename 为所需要的参数,必须是同一 main 包下的所有源文件名,并且不能为空。

  • 示例:

    D:\2www\go
    λ ls
    bin/  demo.go  pkg/
    
    D:\2www\go
    λ go run # 不带参数报错
    go run: no go files listed
    
    D:\2www\go
    λ go run demo.go # 执行 go run 
    Hello World!
    
    D:\2www\go
    λ ls # 不生成可执行文件
    bin/  demo.go  pkg/
    
声明:本文为原创文章,51blog.xyz和作者拥有版权,如需转载,请注明来源于51blog.xyz并保留原文链接:https://mp.51blog.xyz/article/12.html

文章归档

推荐文章

buildadmin logo
Thinkphp8 Vue3 Element PLus TypeScript Vite Pinia

🔥BuildAdmin是一个永久免费开源,无需授权即可商业使用,且使用了流行技术栈快速创建商业级后台管理系统。

热门标签

PHP ThinkPHP ThinkPHP5.1 Go Mysql Mysql5.7 Redis Linux CentOS7 Git HTML CSS CSS3 Javascript JQuery Vue LayUI VMware Uniapp 微信小程序 docker wiki Confluence7 学习笔记 uView ES6 Ant Design Pro of Vue React ThinkPHP6.0 chrome 扩展 翻译工具 Nuxt SSR 服务端渲染 scrollreveal.js ThinkPHP8.0 Mac webman 跨域CORS vscode GitHub ECharts Canvas