回答

收藏

go install 有什么作用?

技术问答 技术问答 208 人阅读 | 0 人回复 | 2023-09-12

文件没有说明buildvsinstall做什么0 T( p' _& `. }- u3 ]9 b& [
我的期望就像make install; 即将需要编译的东西放入其最终位置(/usr/local/bin/my_new_toy但它似乎把东西放在其他位置GOROOT/bin
5 x7 b0 N' y7 H# P$ o3 S- c) w我可以告诉你去做make install- 把东西放在别处吗?或者我只是写一个makefile(请告诉我不是)?7 U7 _4 n1 @! Q6 N% O2 }8 J
                                                               
+ o* A/ ^/ l/ e2 ^! p# Y    解决方案:                                                                3 }8 e+ }9 Y1 J3 R0 |1 R
                                                                环境变量可用于将二进制文件转移到特定位置GOBIN:
0 n" n# x8 c6 M- L9 ?5 Cbin/ 目录保存已编译的命令。每个命令都以其源目录命名,但只有最后一个元素,而不是整个路径。也就是说, DIR/src/foo/quux 中带有 source 的命令安装在 DIR/bin/quux 中,而不是 DIR/bin/foo/quux 中。foo/ 被剥离,这样你就可以把 DIR/bin 添加到你的 PATH 获得已安装的命令。如果设置 GOBIN 环境变量,命令将安装在其命名目录中,而不是 DIR/bin。
  o! \- @, `% {
    GOBIN=/usr/local/bin/ go install
    : ~. }* A/ ~% x0 \$ @) d
假如你想要每个项目bin/目录,然后你可以简单地添加项目路径GOPATH,但是你必须在你的代码里$project-path/src/,并go install所有二进制文件都将被提交$project-path/bin。# C* N' ]& m8 X" c( E; S
    export GOPATH=/dir1:/dir2:/dir38 D1 Y  _$ A& c- p) z
如果没有设置 GOBIN,则 /dir1/src  中的二进制文件最终在 /dir1/bin 中,/dir2/src  中的二进制文件最终在 /dir2/bin 中,按此类推($GOROOT/src  中的二进制文件最终在 $GOROOT 中) /斌)。
- Q1 Y9 n# ^" I& |& }  F* X也可以只用:
* E. ~1 U% N2 O9 k
    go build -o /path/binary-name
      Y9 B( ~' M: a$ a5 J, c1 K8 a
分享到:
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则