go的三个常用命令

go run
go build
go install

命令源码文件:含有 main函数 的文件

库源码文件:不包含 main函数 的文件, 主要用于编译成静态文件.a供其他包调用

构建:编译

安装:编译+链接

go run : 用于对命令源码文件做 编译+链接 操作产生 临时 的可执行程序并执行. 一般用于调试程序

go build : 用于测试编译包

对 库源码文件 go build, 不会产生文件, 只是测试编译包是否有问题

对 命令源码文件 go build, 会在当前执行 go build 命令的目录下产生可执行文件

`go install : 用于 构建+安装 包

对 库源码文件 go install, 直接编译链接整个包, 会在pkg目录下生成.a静态文件, 供其他包调用.

对 命令源码文件 go install, 编译+链接+生成可执行文件, 会在bin目录下生成可执行文件.

注意

go build :

  • 针对单个go文件构建, [go build .\mypkg\hello.go] 只会对单个文件编译检查报错.

  • 针对整个文件夹构建, [go build .\mypkg] 会对整个文件夹的文件编译检查报错.(如果多个文件有错误, 当遇到第一个文件编译报错就停止了,后面的不会编译)

测试代码结构

hello.go 的路径 src\mypkg\hello.go

package mypkg

import "fmt"

func Hello() {
fmt.Println("hello")
}

say.go 的路径 src\mypkg\say.go

package mypkg

import "fmt"

func Say() {
fmt.Println("say")
}

hello.go 的路径 src\mytest\mytest.go

package main

import "mypkg"

func main() {
mypkg.Hello()
}

go的三个常用命令go run go build go install的更多相关文章

  1. Redis学习笔记(三)常用命令整理

    Redis 常用命令 1.DEL key 删除key2.EXISTS key 检查key是否存在3.KEYS * 查看所有的key4.EXPIRE key seconds 设置key的过期时间5.TT ...

  2. Maven初级学习(三)常用命令

    依赖关系查看 mvn dependency:list #列表形式展示依赖 mvn dependency:tree #层级关系展示依赖 mvn dependency:analyze #依赖分析 声明周期 ...

  3. Redis学习之路(三)常用命令总结

    一.集群 查看Redis集群有多少个库 192.168.200.100:7001> config get databases 1) "databases" 2) " ...

  4. laravel5.8笔记三:常用命令

    创建控制器 php artisan make:controller Index/IndexController 创建模型 php artisan make:model Index/IndexContr ...

  5. Docker:常用命令大全 [七]

    一.docker的命令的解释 1.命令解释 docker run -d -p 80:80 nginx run (创建并运行一个容器) -d 放在后台 -p 端口映射 nginx docker镜像的名字 ...

  6. maven的配置及一些常用命令

    一般来说,github上大多的java项目都是使用maven,ant等进行构建的.由于之前没有使用过maven,因此这几天对maven进行了简单的学习.古话说:“温故而知新”,一些命令长时间不使用都会 ...

  7. Maven常用命令及Eclipse应用

    一般来说,github上大多的java项目都是使用maven,ant等进行构建的.由于之前没有使用过maven,因此这几天对maven进行了简单的学习.古话说:“温故而知新”,一些命令长时间不使用都会 ...

  8. Linux(3)- 用户管理、文件与目录权限、常用命令、Linux软件包管理

    一.用户管理 现代操作系统一般属于多用户的操作系统,也就是说,同一台机器可以为多个用户建立账户,一般这些用户都是为普通用户,这些普通用户能同时登录这台计算机,计算机对这些用户分配一定的资源. 普通用户 ...

  9. docker学习笔记(1)概述、原理学习、常用命令

    一.Docker概述 Docker是基于Go语言实现的云开源项目,诞生于2013年初,目前主流的Linux操作系统已支持Docker,如Redhat RHEL6.5/CentOS6.5.Ubuntu ...

随机推荐

  1. BurpSuite系列(九)----Comparer模块(比较器)

    一.简介 Burp Comparer在Burp Suite中主要提供一个可视化的差异比对功能,来对比分析两次数据之间的区别.使用中的场景可能是: 1.枚举用户名过程中,对比分析登陆成功和失败时,服务器 ...

  2. @Value关于static字段的注入

    @Component public class BaseCode { //应用key public static String APP_KEY; //应用密钥 public static String ...

  3. libcurl用法

    本文以向百度搜索开放平台搜索关键字所对应的推荐搜索条目为例子: url:http://m.baidu.com/su?wd=%s&action=opensearch&ie=utf-8 ( ...

  4. c语言入门教程

    https://www.youtube.com/playlist?list=PLY_qIufNHc293YnIjVeEwNDuqGo8y2Emx 感觉这个教程不错

  5. Django--登录实例

    1.准备工作 创建必要的目录和文件,导入js,css,bootstrap等,目录结构如下: 2.配置文件添加static路径 settings.py 1 2 3 4 STATIC_URL = '/st ...

  6. CountDownLatch、信号量

    countDownlatch可以阻塞线程,可以在某种条件下继续执行 不安全的:

  7. 17.SQL 约束

    约束用于限制加入表的数据的类型. 可以在创建表时规定约束(通过 CREATE TABLE 语句),或者在表创建之后也可以(通过 ALTER TABLE 语句). 我们将主要探讨以下几种约束: NOT ...

  8. SVN常见问题及解决方式(一)

    1.每天早上上班要update SVN,每天下班要commit SVN.2.查看是谁动了我的代码,右键 tortoise 后查看 log 日志.3.文件被别人删除,在空白处右击,show log,可以 ...

  9. UVa 10245 The Closest Pair Problem (分治)

    题意:给定 n 个点,求最近两个点的距离. 析:直接求肯定要超时的,利用分治法,先把点分成两大类,答案要么在左边,要么在右边,要么一个点在左边一个点在右边,然后在左边或右边的好求,那么对于一个在左边一 ...

  10. 【Android学习】实现卡片式ListView

    效果: 主要是设置xml文件 两种状态下的item card_background.xml <?xml version="1.0" encoding="utf-8& ...