安装什么去做?

 心诚新城 发布于 2023-01-11 13:54

文档没有说buildvs vs install做什么

我的期望是它就像make install; 即它需要编译的东西并放入它的最终位置(/usr/local/bin/my_new_toy或其他任何东西),但似乎它放入了东西GOROOT/bin

我可以告诉你做一个make install- 即把东西放在别的地方吗?或者我只是写一个makefile(请告诉我没有)?

2 个回答
  • go buildgo install:

    go build只需编译可执行文件并将其移至目标位置即可。 go install多做一点。它将可执行文件移动到 $GOPATH/bin并缓存所有导入到的非主要软件包 $GOPATH/pkg。如果尚未更改,则缓存将在下一次编译中使用。


    go build和之后的软件包树go install

    .
    ??? bin
    ?   ??? hello  # by go install
    ??? src 
        ??? hello
            ??? hello  # by go build
            ??? hello.go
    

    比较完整的参考资料。

    2023-01-11 13:56 回答
  • 如果要将二进制文件转到特定位置,可以使用环境变量GOBIN:

    bin /目录保存已编译的命令.每个命令都以其源目录命名,但仅以最终元素命名,而不是整个路径.也就是说,DIR/src/foo/quux中带有源的命令安装在DIR/bin/quux中,而不是DIR/bin/foo/quux中.foo /被剥离,以便您可以将DIR/bin添加到PATH以获取已安装的命令.如果设置了GOBIN环境变量,则命令将安装到它命名的目录而不是DIR/bin.

    资料来源:http://golang.org/cmd/go/#hdr-GOPATH_environment_variable

    GOBIN=/usr/local/bin/ go install
    

    如果你想要每个项目bin/目录,那么你只需要附加你的项目路径GOPATH,但是你必须拥有你的代码$project-path/src/,go install并将所有二进制文件放入$project-path/bin.

    export GOPATH=/dir1:/dir2:/dir3
    

    如果没有设置GOBIN,二进制文件从/ DIR1/src目录中/ DIR1 /箱端起来,二进制文件从/ DIR2/src目录是在/ DIR2 /箱,等等(从$ GOROOT二进制文件在$ GOROOT/src目录结束/箱).

    来源:https://groups.google.com/forum/#!topic/golang- nuts/ -mN8R_Fx-7M

    它完全超越了我的想法,但你可以随时使用(感谢JimB):

    go build -o /path/binary-name
    

    2023-01-11 13:57 回答
撰写答案
今天,你开发时遇到什么问题呢?
立即提问
热门标签
PHP1.CN | 中国最专业的PHP中文社区 | PNG素材下载 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有