永发信息网

go build和go install的区别

答案:2  悬赏:30  手机版
解决时间 2021-03-15 04:56
go build和go install的区别
最佳答案
go install/build都是用来编译包和其依赖的包,不同的是

go install一般生成静态库文件放在$GOPATH/pkg目录下,文件扩展名a,如果为main包,则会在$GOPATH/bin 生成一个可执行的二进制文件。
go build好像只对main包有效,在当前目录编译生成一个可执行的二进制文件(依赖包生成的静态库文件放在$GOPATH/pkg)。

go build:去建造,在数据库命令中,是建立一个新的数据构。
go install:去安装,在数据库命令中,是从其它数据源将数据库安装到本机上。
你可以试试把$GOPATH下的pkg和bin目录清空:

1.使用go build 编译非main包不生效(暂时没实验编译main包,并且main包里面有其他依赖),编译main包OK
2.使用go install的时候报错,go install runtime: open /usr/lib/go/pkg/linux_386/runtime.a: permission denied chmod 777 原来是(644)之后成功,看起来他干了其他build不干的事情,因为build是成功的
3.go install会修改output的位置,放到$GOPATH/bin下面
全部回答
简略回答: go install/build都是用来编译包和其依赖的包的,不同的是,go install一般生成静态库文件放在$gopath/pkg目录下,文件扩展名a,如果为main包,则会在$gopath/bin 生成一个可执行的二进制文件。go build好像只对main包有效,在当前目录编译生成一个可执行的二进制文件(依赖包生成的静态库文件放在$gopath/pkg)。你自己可以先把$gopath下的pkg和bin目录清空,试一下不同命令有什么变化。 详细回答: go build 通过go build加上要编译的go源文件名,我们即可得到一个可执行文件,默认情况下这个文件的名字为源文件名字去掉.go后缀。 $ go build hellogo.go $ ls hellogo* hellogo.go 当然你也可以通过-o选项来指定其他名字: $ go build -o myfirstgo hellogo.go $ ls myfirstgo* hellogo.go 如果我们在go-examples目录下直接执行go build命令,后面不带文件名,我们将得到一个与目录名同名的可执行文件: $ go build $ ls go-examples* hellogo.go go install 与build命令相比,install命令在编译源码后还会将可执行文件或库文件安装到约定的目录下。 go install编译出的可执行文件以其所在目录名(dir)命名 go install将可执行文件安装到与src同级别的bin目录下,bin目录由go install自动创建 go install将可执行文件依赖的各种package编译后,放在与src同级别的pkg目录下.
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
电力系统无功补偿时,当功率因数补偿到1,就
数码相机上的白平衡是指?
苹果6激活锁显示丢失并且被抹掉,请问贵阳市
4399古代美人小游戏为什么武媚娘的那个花瓣拼
老马茶馆在什么地方啊,我要过去处理事情
lips是什么意思
地之坤教育效果怎么样,有没有去学过的?
信用证中的FIN是什么意思
歌词:当你在穿山越岭那一天.歌曲名字是什么?
肥羊传奇火锅.湘菜.石锅鱼.烤鱼(肥羊火锅&湖
我的iphone6s4.7屏.经常玩游戏一天充几次电!
韩束精华素的正确使用方法
哪里三只松鼠最实体店的价格与线上价格是一样
我的五格是多少五格命运
尚佳宅配在哪里啊,我有事要去这个地方
推荐资讯
恶魔城苍月的十字架通关后怎么选尤里乌斯?
150平米房子设计图
十五斤的鲶鱼怎么做
合资本田发动机和进口本田发电机是一样吗
求借穿越火线有英雄级武器的号
为什么有的物体悬浮在液体中心有的再上面
事业单位代收代付款项应当确认收入吗
本人欠贷款十几个,之前一直按时还,现在没有钱
华师大二附中自主招生已预录取多少人?
九阳果汁机可以做沙拉酱吗?
星际争霸2怎么找到第一次进游戏放的CG!
脚后跟有个痣,用不用去掉,会不会病变。
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?