go build和go install的区别介绍
go build:
go build 用于编译包生成可执行文件,必须有main包才可以
go install:
go install 的作用有两个:主要用来生成库和工具,(如果有main包)编译后生成的可执行工具文件放到 bin 目录、$GOPATH/bin,编译后的库文件放到 pkg 目录下($GOPATH/pkg)
补充:go build 命令
简介
1、用于编译源码文件或代码包
-编译非命令源码文件不会产生任何结果文件
-编译命令源码文件会在该命令的执行目录中生成一个可执行文件
2、执行该命令且以若干源码文件作为参数时,只有这些文件会被编译
-注意列出代码运行所需的全部源码文件,否则可能产生编译错误
3、执行该命令且不追加任何参数时,它会试图把当前目录作为代码包并编译
4、执行该命令且以代码包的导入路径作为参数时,该代码包及其依赖会被编译
-加入-a标记后所有涉及到的代码包都会被重新编译
-不加入-a标记,则只会编译归档文件中不是最新的代码包
使用
编译源码文件:go build [fileName].go
编译代码包:go build [代码包的导入路径]
常见标记
标记 | 描述 |
---|---|
-o | 指定输出文件。 |
-a | 强行对所有涉及到的代码包(包括标准库中的代码包)进行重新构建,即使它们已经是最新的了。 |
-n | 打印构建期间所用到的其它命令,但是并不真正执行它们。 |
-p n | 构建的并行数量(n)。默认情况下并行数量与CPU数量相同。 |
-race | 开启数据竞争检测。此标记目前仅在linux/amd64、darwin/amd64和windows/amd64平台下被支持。 |
-v | 打印出被构建的代码包的名字。 |
-work | 打印出临时工作目录的名字,并且取消在构建完成后对它的删除操作。 |
-x | 打印出构建期间所用到的其它命令。 |
例如:
go build -a [代码包的导入路径]
以上为个人经验,希望能给大家一个参考,也希望大家多多支持我们。如有错误或未考虑完全的地方,望不吝赐教。
相关推荐
-
golang 限制同一时间的并发量操作
go的并发量是很厉害的,goroutine创建的代价极小,其中一个重要的原因是因为go采用了分段栈技术,每一个goroutine只占极小的空间.与此同时,goroutine是语言层面的,减少了内核态到用户态的切换开销,并且goroutine摒弃了一些golang用不到的一些os thread的系统调用,创建代价小. 我们可以一瞬间创建很多个goroutine,这是相当容易的. 乍一看,这与题目完全不符,前面说了那么多,难道不是鼓励我们多创建goroutine吗?不不不,goroutine确实很好
-
基于pip install django失败时的解决方法
使用pip安装Django时报错,先是: C:\Users\admin>pip install django Collecting django Retrying (Retry(total=4, connect=None, read=None, redirect=None)) after connection broken by 'ReadTimeoutError("HTTPSConnectionPool(host='pypi.python.org', port=443): Read ti
-
go install/build生成的文件命名和路径操作
1. 写在前面 本文主要讨论go install/build命令生成的文件命令和生成路径问题.将从两种情况讨论: 文件夹下只有一个"命令源码文件" 文件夹下既有命令源码文件还有其他源码文件 以下实验主要在windows环境下完成呢,所以生成的可执行文件以.exe后缀结尾 2. 文件夹下只有一个"命令源码文件" 假设一个简单的命令源码文件所在的工程组织如下所示: |__ src |__ jeekTimeProject |__ test
-
golang网络通信超时设置方式
网络通信中,为了防止长时间无响应的情况,经常会用到网络连接超时.读写超时的设置. 本文结合例子简介golang的连接超时和读写超时设置. 1.超时设置 1.1 连接超时 func DialTimeout(network, address string, timeout time.Duration) (Conn, error) 第三个参数timeout可以用来设置连接超时设置. 如果超过timeout的指定的时间,连接没有完成,会返回超时错误. 1.2 读写超时 在Conn定义中,包括读写的超时时
-
golang 格式化输入输出操作
格式化字符串由占位符和普通字符组合而成. 占位符由'%'打头,动词结尾. 占位符由五类元素组成: 标志位(flag),宽度,精度,参数索引,以及动词. 除了最后的动词之外,其他元素均可省略. 看下面的常用类型的例子描述: 缺省格式和类型 Value: []int64{0, 1} 格式化后的效果 动词 描述 [0 1] %v 缺省格式 []int64{0, 1} %#v go语法打印 []int64 %T 类型打印 整型(缩进, 进制类型, 正负符号) Value: 15 格式化后的效果 动词 描
-
go build和go install的区别介绍
go build: go build 用于编译包生成可执行文件,必须有main包才可以 go install: go install 的作用有两个:主要用来生成库和工具,(如果有main包)编译后生成的可执行工具文件放到 bin 目录.$GOPATH/bin,编译后的库文件放到 pkg 目录下($GOPATH/pkg) 补充:go build 命令 简介 1.用于编译源码文件或代码包 -编译非命令源码文件不会产生任何结果文件 -编译命令源码文件会在该命令的执行目录中生成一个可执行文件 2.执行该
-
关于vue的npm run dev和npm run build的区别介绍
关于vue的npm run dev和npm run build的区别介绍,下面就分享给大家,具体如下: ├─build │ ├─build.js │ ├─check-versions.js │ ├─dev-client.js │ ├─dev-server.js │ ├─utils.js │ ├─vue-loader.conf.js │ ├─webpack.base.conf.js │ ├─webpack.dev.conf.js │ ├─webpack.prod.conf.js │ └─webpa
-
MyBatis中关于resultType和resultMap的区别介绍
MyBatis中在查询进行select映射的时候,返回类型可以用resultType,也可以用resultMap,resultType是直接表示返回类型的(对应着我们的model对象中的实体),而resultMap则是对外部ResultMap的引用(提前定义了db和model之间的隐射key-->value关系),但是resultType跟resultMap不能同时存在. 在MyBatis进行查询映射时,其实查询出来的每一个属性都是放在一个对应的Map里面的,其中键是属性名,值则是其对应的值.
-
tensorflow2.0与tensorflow1.0的性能区别介绍
从某种意义讲,tensorflow这个项目已经失败了,要不了几年以后,江湖上再无tensorflow 因为tensorflow2.0 和tensorflow1.0 从本质上讲就是两个项目,1.0的静态图有他的优势,比如性能方面,但是debug不方便,2.0的动态图就是在模仿pytorch,但是画虎不成反类犬. 为了对比1.0 与2.0 1. pip install tensorflow==2.0.0a0 2. 为了控制变量我把mnist保存到本地的mongodb 3. 两种网络结构是一样的 ip
-
正则表达式中test、exec、match的区别介绍及括号的用法
test.exec.match的简单区别 1.test test 返回 Boolean,查找对应的字符串中是否存在模式. var str = "1a1b1c"; var reg = new RegExp("1.", ""); alert(reg.test(str)); // true 2.exec exec 查找并返回当前的匹配结果,并以数组的形式返回. var str = "1a1b1c"; var reg = new Re
-
oracle中存储函数与存储过程的区别介绍
在oracle中,函数和存储过程是经常使用到的,他们的语法中有很多相似的地方,可是也有它们的不同之处,这段时间刚学完函数与存储过程,来给自己做一个总结: 一:存储过程:简单来说就是有名字的pl/sql块. 语法结构: create or replace 存储过程名(参数列表) is --定义变量 begin --pl/sql end; 案例: create or replace procedure add_(a int,b int) is c int; begin c:=a+b; dbms_ou
-
Oracle、MySQL和SqlServe三种数据库分页查询语句的区别介绍
先来定义分页语句将要用到的几个参数: int currentPage ; //当前页 int pageRecord ; //每页显示记录数 以之前的ADDRESSBOOK数据表为例(每页显示10条记录): 一.SqlServe下载 分页语句 String sql = "select top "+pageRecord +" * from addressbook where id not in (select top "+(currentPage-)*pageRecor
-
vue学习笔记之vue1.0和vue2.0的区别介绍
今天我们来说一说vue1.0和vue2.0的主要变化有哪些 一.在每个组件模板,不在支持片段代码 VUE1.0是: <template> <h3>我是组件</h3><strong>我是加粗标签</strong> </template> VUE2.0:必须有根元素,包裹住所有的代码 <template id="aaa"> <div> <h3>我是组件</h3> <
-
javascript函数命名的三种方式及区别介绍
javascript函数命名的三种方式及区别介绍 第一 复制代码 代码如下: function fn(val1,val2) { alert(val1+val2); } fn(1,2); 第二 复制代码 代码如下: var fn=function() { alert(val1+val2); } fn(1,2); 第三 复制代码 代码如下: var fn=new Function("alert(val1+val2)"); fn(1,2); 上面三种方式逻辑上是等价的,但是还是有点小区别:区
-
apache伪静态与iis伪静态规则与配置区别介绍
本文章来总结一下关于apache伪静态与iis伪静态区别介绍,主要讲到了一些规则的问题与配置区别,以后大家就可以直接在iis伪静态转换apache,反之也很简单哦. 在我开时打开模式不一样:apache的.htaccess配置文件是以:RewriteEngine On 将写模式打开.Apache伪静态html(URL Rewrite)设置法phpma一 打开 Apache 的配置文件 httpd.conf .phpma二 将#LoadModule rewrite_module modules/m
随机推荐
- SQLServer2005安装提示服务无法启动原因分析及解决
- Oracle 跨库 查询 复制表数据 分布式查询介绍
- python 3.5下xadmin的使用及修复源码bug
- GridView中checkbox"全选/取消"完美兼容IE和Firefox
- PHP如何通过传引用的思想实现无限分类(代码简单)
- js实现的点击div区域外隐藏div区域
- PHP 中执行系统外部命令
- Ajax象棋演示和并提供代码下载
- sql server日期相减 的实现详解
- 微信小程序实现瀑布流布局与无限加载的方法详解
- php使用curl实现ftp文件下载功能
- IIS 6.0 中修改注册表自定义 Httperr.Log
- 收集的DedeCMS一些使用经验
- js使浏览器窗口最大化实现代码(适用于IE)
- input file获得文件根目录简单实现
- php 批量替换程序的具体实现代码
- Android仿微信通讯录打造带悬停头部的分组列表(上)
- python爬取拉勾网职位数据的方法
- 使用python将图片按标签分入不同文件夹的方法
- 使用Python实现图像标记点的坐标输出功能