Go模块:Go生成后,main.Go文件被覆盖

Go模块:Go生成后,main.Go文件被覆盖,go,build,dependencies,go-modules,Go,Build,Dependencies,Go Modules,我面临一个奇怪的问题,在用go模块出售依赖项之后,go build命令用随机数据覆盖main.go文件 文件的开头如下所示: ���� H H__PAGEZEROx__TEXTpxpx__text__TEXT��7�__rodata__TEXT��7Y��7__symbol_stub1__TEXT�V��V�__typelink__TEXT�V�(�V__itablink__TEXTP@V� P@V__gosymtab__TEXT�JV�JV__gopclntab__TEXTKV "KV�_

我面临一个奇怪的问题,在用go模块出售依赖项之后,go build命令用随机数据覆盖main.go文件

文件的开头如下所示:

����
H
H__PAGEZEROx__TEXTpxpx__text__TEXT��7�__rodata__TEXT��7Y��7__symbol_stub1__TEXT�V��V�__typelink__TEXT�V�(�V__itablink__TEXTP@V�
P@V__gosymtab__TEXT�JV�JV__gopclntab__TEXTKV
"KV�__DATApx�|px c
__nl_symbol_ptr__DATApx�pxs__noptrdata__DATA�sx���sx__data__DATA�&{���&{__bss__DATA �{��__noptrbss__DATA�}�2__DWARF�}�{��   __zdebug_abbrev__DWARF�}�{__zdebug_line__DWARF�}'W�{__zdebug_frame__DWARF;H���;8�__zdebug_pubname__DWARF�څ�K�ʃ__zdebug_pubtype__DWARF�&����__debug_gdb_scri__DWARF��6�ӄ__zdebug_info__DWARF���
�ӄ__zdebug_loc__DWARF䉑��y�__zdebug_ranges__DWARFU��ZE�H__LINKEDIT�}L���L��*�����,�r���Pu,u,x,xo�� /usr/lib/dyld8/usr/lib/libSystem.B.dylibh/System/Library/Frameworks/CoreFoundation.framework/Versions/A/CoreFoundation`/System/Library/Frameworks/Security.framework/Versions/A/Security$

� Go build ID: "OLftMbjtv5aWMkI_0qrD/LhWRtD0wcaKFWRYSDOa9/7dFWcNOQ4BpWWqZQW07D/pkR9ABiz-SHIBaJIZ1ur"
 ����������UH��AWAVATSH���=|I��
Go版本:Go版本
go1.12.5达尔文/amd64

启用Go模块化,带有
export GO111MODULE=on

文件夹结构: go.mod go.sum log.go main.go供应商

仅供参考:只有main.go被覆盖,而不是log.go

Go模块用
Go mod init初始化

应用程序由
go mod vendor


不确定我是否做错了什么。非常感谢您的帮助。

模块名称不应为main.go,因为它是包中的文件。请使用您的项目名称作为
go mod init
中的模块名称

例如,如果您的项目根目录是hello,请将包命名为hello,而不是
main.go
。 此外,如果您想一遍遍地使用该模块,请考虑使用存储库名称作为模块名。
Go处理包而不是单个文件。Go模块用于组织包。在

中了解更多您确切使用的命令是什么?您是否将模块命名为main.go
?谢谢@JimB。这就是问题所在。我刚刚运行了
go mod init
,它创建了名为
main.go
的模块。运行
go build
将覆盖
main.go
文件。将模块名称更改为main(或main.go以外的任何名称)解决了该问题。