我遇到了一个奇怪的问题,即在使用 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/dyld8/usr/lib/libSystem.B.dylibh/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 darwin/amd64
使用 export GO111MODULE=on
启用 Go 模块
文件夹结构: go.mod go.sum log.go main.go vendor
仅供引用:只有 main.go 被覆盖,没有 log.go。
使用 go mod init
初始化 Go 模块
应用程序由 go mod vendor
供应
不确定我是否做错了什么。感谢您的帮助。
最佳答案
模块名称不应该是 main.go,因为它是包中的一个文件。请在 go mod init
中使用您的项目名称作为模块名称。
例如,如果您的项目根目录是 hello,请将您的包命名为 hello,而不是 main.go
。
此外,如果您想反复使用该模块,请考虑使用您的存储库名称作为模块名称。
Go 处理包而不是单个文件。 Go 模块用于组织包。了解更多 official documentation
关于Go模块: main. go文件在go构建后被覆盖,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56716040/