Golang程序报错解决
Posted 南瓜__pumpkin
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Golang程序报错解决相关的知识,希望对你有一定的参考价值。
文章目录
错误: 无法在构建后运行 ‘main’ 文件具有非 main 软件包或不包含 ‘main’ 函数(main包)
@date: 2021-12-12
对应代码和处理
对应代码:package Go_in_action
成功处理:修改为 package main
原理
引用《Go in action》
第二章简单描述: main()函数保存在名为 main
的包里。如果 main 函数不在 main
包里,构建工具就不会生成可执行文件。
3.1.2 - main包: 在 Go 语言里,命名为 main 的包具有特殊的含义。(根据个人理解分点说明且添加小标题)
- 编译可执行文件必备的包:Go 语言的编译程序会试图把 main 的包编译成二进制可执行文件。因此所有用Go语言编译的可执行程序,都必须有一个名叫main的包
- 编译可执行文件必备的函数:当编译器发现某个包的名字为 main 时,它必须发现名为 main() 的函数,否则不会创建可执行文件。(因为main()函数是程序的入口,没有这个函数,程序就无法开始执行)
- 可执行文件的命名:程序编译时,会使用声明 main 包的代码所在目录的
目录名
作为二进制可执行文件的文件名。
结论
- 入口函数所在的文件,必须声明 main 包,否则无法编译二进制可执行程序
- 二进制可执行程序命名,是声明 main 包代码所在目录的
目录名
错误截图
远程导入错误:no required module provides package github.com/xxx/matchers
尝试解决(未解决)
设置Go变量,命令行执行 go env -w GO111MODULE=auto
(默认值),重启 IDEA 后仍然报错。
暂时不考虑运行 《Go in action》的示例程序。
以上是关于Golang程序报错解决的主要内容,如果未能解决你的问题,请参考以下文章
解决go: go.mod file not found in current directory or any parent directory; see ‘go help modules‘(代码片段
golang goroutine例子[golang并发代码片段]
解决移动端报错:Unable to preventDefault inside passive event listener due to target being treated as……(代码片段
Flutterflutter doctor 报错Android license status unknown. Run `flutter doctor --android-licenses‘(代码片段