go day 01

打印 上一主题 下一主题

主题 1579|帖子 1579|积分 4737

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?立即注册

x
go day 01 设置go环境

  1. install go on D:\huang\lang\go\
复制代码
  1. D:\huang\lang\go\bin\go xxx.go
  2. # D:\huang\lang\go\bin 设置到环境变量
复制代码
  1. go
  2. go version
复制代码
  1. # 创建任意一个目录,创建三个文件夹
  2. # D:\huang\lang\goProject
  3. bin、pkg、src
  4. # 创建三个系统环境变量 GOROOT GOPATH GOBIN
  5. # GOROOT D:\huang\lang\go 编译器的安装路径
  6. # GOPATH D:\huang\lang\goProject 实际项目的目录
  7. # GOBIN D:\huang\lang\goProject\bin go install 实际编译的二进制结果存放的目录
  8. echo %GOROOT% %GOPATH% %GOBIN%
  9. # 设置代理,这样在 Vscode 安装 package 时就不会失败。
  10. go env -w GOPROXY=https://goproxy.cn,direct
复制代码
  1. # 测试是否生效
  2. D:\huang\lang\goProject\src\crm
  3. # app.go
  4. package main
  5. import "fmt"
  6. func main(){
  7.         fmt.Println("Hello world")
  8. }
  9. # go install app.go  
  10. ## D:\huang\lang\goProject\bin\app.exe
  11. # go run app.go
  12. # go build
  13. ## 没成功 go build -o xx.exe go: go.mod file not found in current directory or any parent directory; see 'go help modules' 百度一下
  14. ## go env -w GO111MODULE="on"
  15. ## cd D:\huang\lang\goProject\
  16. ## go mod init crm # -> D:\huang\lang\goProject\go.mod
  17. ## go build
  18. ## go build -o xx.exe
复制代码
  1. D:\huang\lang\goProject\src\utils
  2. # page.go
  3. package utils
  4. func Add(n1 int, n2 int) int {
  5.         return 2222
  6. }
  7. ## go mod init utils
  8. go install # 包文件
  9. # go build # bin
  10. # go install 的时候包名要从$GOPATH/src下面的目录开始写。 比如在src下面有一个项目project,下面有个tools包,应该写成这样: go install project/tools 按照上面这个原则,就会在$GOPATH/pkg下面生成a文件了。
  11. # cd D:\huang\lang\goProject\src
  12. # go install utils\page.go
复制代码
  go build:用于测试编译包,在项目目录下生成可执行文件(有 main 包)。
  go install:重要用来生成库和工具。一是编译包文件(无 main 包),将编译后的包文件放到 pkg 目录下(                                        G                            O                            P                            A                            T                            H                            /                            p                            k                            g                            )。二是编译生成可执行文件(有                            m                            a                            i                            n                            包),将可执行文件放到                            b                            i                            n                            目录(                                  GOPATH/pkg)。二是编译生成可执行文件(有 main 包),将可执行文件放到 bin 目录(                     GOPATH/pkg)。二是编译生成可执行文件(有main包),将可执行文件放到bin目录(GOPATH/bin)。
  1. # cd D:\huang\lang\goProject\src\crm
  2. go build -o aa.exe
  3. aa.exe
  4. # cd D:\huang\lang\goProject\src\crm\test
  5. # 不管是 go build 还是 go build test1.go go build test2.go 都不会产生额外文件。
  6. # cd D:\huang\lang\goProject\src\crm
  7. go install
  8. 这个时候产生 bin 目录以及 hello.exe 文件【这里有没有发现 之前在 hello 目录下的 hello.exe 自动被删了】
  9. cd test
  10. 注意:go install 的时候包名要从 $GOPATH/src 下面的目录开始写。 比如在 src 下面有一个项目 project,下面有个 tools 包,应该写成这样: go install project/tools 按照上面这个原则,就会在 $GOPATH/pkg 下面生成 a 文件了
  11. cd D:\huang\lang\goProject\src\
  12. go install crm\test
  13. go env -w GO111MODULE=off
复制代码
  1. # go引入自建包名报错 package XXX is not in std
  2. 根据配置信息,问题出在Go Modules的开启或关闭上。
  3. 当你运行 go env -w GO111MODULE= 时,它将清除 GO111MODULE 环境变量的设置,将其重置为空字符串。这将导致Go工具认为你的项目不使用Go Modules,因此它会尝试在GOPATH中查找包,但无法找到你的项目中的非标准库包。
  4. 当你运行 go env -w GO111MODULE=off 时,它将显式地将 GO111MODULE 设置为 "off",这意味着你禁用了Go Modules,并且Go工具会尝试在GOPATH中查找包。
  5. # go env -w GO111MODULE=off
复制代码
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

风雨同行

论坛元老
这个人很懒什么都没写!
快速回复 返回顶部 返回列表