gulp不生成打包文件_golang 编译,不报错,也不生成文件?你可能这里错了!

e1dcb967072fa453f7f8c36de1294c06.png

go build 是golang 编译都会用到的命令,在控制台下 ,进入到项目根目录,直接运行go build,一般情况下都会有信息输出。

然后,某年某月某日,写了N就 的代码,测试也没问题,改编译了。于是顺手在控制台下,直接一个 go build命令,之后就等待完成。片刻之后,控制台显示执行完成,然后查看生成文件,顿时傻眼了:啥都没有,不应该啊! 在执行一遍go build 不报错啊!可还是没有,于是检查一遍项目目录路径和控制台路径,结果一致,没问题,但是就是不生成!

清理,重新编译!无果

再清理,再编译!还是无果

。。。。。。

无奈搜索一番,没什么有用价值

焦急万分之际,随意打开代码文件查看!main.go 是有main函数!没错!package ....

不对!问题出来了!

项目是在goland自动生成的,main.go 的package 不是main,而是项目名!

修改成main后,go build 熟悉的文件生成了!问题解决了!粗心大意导致的不是问题的问题!

那么,为什么没有main包就不会编译生成文件呢?

在 Go 语言里,命名为 main 的包具有特殊的含义。 Go 语言的编译程序会试图把这种名字的包编译为二进制可执行文件。所有用 Go 语言编译的可执行程序都必须有一个名叫 main 的包。一个可执行程序有且仅有一个 main 包。

当编译器发现某个包的名字为 main 时,它一定也会发现名为 main()的函数,否则不会创建可执行文件。 main()函数是程序的入口,所以,如果没有这个函数,程序就没有办法开始执行。程序编译时,会使用声明 main 包的代码所在的目录的目录名作为二进制可执行文件的文件名。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值