单独使用go install命令的场景一般是安装本地自定义包,比如修改了一个已有的第三方包,想要使用本地的版本,就可以使用go install命令

go install

//1.编译的中间文件(目标库文件)放到pkg下,xxx.a文件
//2.把编译的结构放到go的bin目录下

go install chapter11/goinstall
//当前目录是项目main.go所在目录,包名为chapter11,要安装的目录为goinstall,只有这样才能在pkg下面生成.a
//文件,否则生成不了

├── bin
│   └── goinstall
├── pkg
│   └── linux_amd64
│       └── chapter11
│           └── goinstall
│               └── mypkg.a
└── src
    └── chapter11
        ├── gobuild
        │   ├── lib.go
        │   └── main.go
        └── goinstall
            ├── main.go
            └── mypkg
                └── mypkg.go
                
 go install -v -work
  //在一个目录下执行安装(-v -work和go build 下的一样)
 //outpu:
 //WORK=/var/folders/mj/jw1zfg_x2qv70vx2y4wmb_r80000gn/T/go-build3841152502
 //test/copymutex
//可见打印出了临时构建文件的目录,以go-build 为前缀的临时目录和包名
 go install -v -work -a
//-a 和go build中的也一样,强制安装,这时可看到输出了很多依赖的包
//并且在在gobin 下生成了/Users/.../go/bin/copymutex
我用绝对路径执行
go install -a  /Users/.../core/tools
可以在pkg目录下生成.a文件,但是没有在go bin 目录下生成二进制文件,不知道为啥
注意一定要在 gopath目录下才行
Logo

魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。

更多推荐