回答

收藏

go install 有什么作用?

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

文件没有说明buildvsinstall做什么. V  e" u7 w: X
我的期望就像make install; 即将需要编译的东西放入其最终位置(/usr/local/bin/my_new_toy但它似乎把东西放在其他位置GOROOT/bin& |6 `8 S6 I0 z$ c4 Z; l( a3 N$ q5 ?; K
我可以告诉你去做make install- 把东西放在别处吗?或者我只是写一个makefile(请告诉我不是)?! _8 C& _1 y4 }
                                                                $ J% ?1 O! x9 L/ x
    解决方案:                                                               
, ~! t3 k  R* |4 |                                                                环境变量可用于将二进制文件转移到特定位置GOBIN:$ [; o4 l9 ]) c# }, R$ l
bin/ 目录保存已编译的命令。每个命令都以其源目录命名,但只有最后一个元素,而不是整个路径。也就是说, DIR/src/foo/quux 中带有 source 的命令安装在 DIR/bin/quux 中,而不是 DIR/bin/foo/quux 中。foo/ 被剥离,这样你就可以把 DIR/bin 添加到你的 PATH 获得已安装的命令。如果设置 GOBIN 环境变量,命令将安装在其命名目录中,而不是 DIR/bin。
1 t% h3 m4 Q% O6 W; j
    GOBIN=/usr/local/bin/ go install
    - S( G; v; w$ m! Y# I
假如你想要每个项目bin/目录,然后你可以简单地添加项目路径GOPATH,但是你必须在你的代码里$project-path/src/,并go install所有二进制文件都将被提交$project-path/bin。
3 p7 U! Z$ d6 N; o  c
    export GOPATH=/dir1:/dir2:/dir3. E5 Z+ p0 ^$ \6 e4 b+ J
如果没有设置 GOBIN,则 /dir1/src  中的二进制文件最终在 /dir1/bin 中,/dir2/src  中的二进制文件最终在 /dir2/bin 中,按此类推($GOROOT/src  中的二进制文件最终在 $GOROOT 中) /斌)。7 [5 W3 r' r/ R$ E* q  U3 p
也可以只用:
+ x: w6 @; v  g& G) U
    go build -o /path/binary-name
    2 b* n/ \- B7 b! A
分享到:
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则