Go语言(使用)——go tool compile; can‘t find import: “ “

Go语言(使用)——go tool compile; can‘t find import: “ “,第1张

问题描述 代码目录结构如下:
D:
|——program
	  |——Code
	  	   |——go
	  	   	   |——src
	  	   	   |   |——goStudy
	  	   	   |	     |——self
	  	   	   |              |——main.go
			   |			  |——Interface
			   |					 |——test_interface.go
			   |——pkg
			       |——windows_amd64
			        	     |——goStudy
			        	     	   |——self
			        	     	   	   |——interface.a
Interface 包下面有一个 test_interface.go 文件
package Interface

type coder interface {
	code()
	debug()
}

type Gopher struct {
	language string
}

func (g Gopher)code() {
	fmt.Printf("I am coding %s language.\n", g.language)
}

func (g *Gopher)debug() {
	g.language = "golang"
	fmt.Printf("I am debugging %s language.\n", g.language)
}

func TransValueTest() {
	var c Gopher = Gopher{language: "go"}
	c.debug()
}
main.go
package main

import "goStudy/self/Interface"

func main() {
	Interface.TransValueTest()
}
然后我在
D:\program\Code\go\pkg\windows_amd64\goStudy\self里面执行下面这条命令
go tool compile -S main.go
结果报了下面这个错误:
can't find import: "goStudy/self/Interface"
很奇怪不知道为什么错了,后来搜索各种解决方案,终于找到了方法。 解决方案 第一步,它不是找不到 “goStudy/self/Interface” 这个吗,那么我们要将 Interface 包编译成 .a 文件,类似于 C 语言里的动态链接库。
//在任意一个目录里打开 cmd,然后执行下面这个命令
go install goStudy\self\Interface
//为什么从 goStudy 目录开始呢,你可以在控制台里输入 echo %GOPATH% 命令,查看你电脑的 GOPATH 路径
//我电脑里的 GOPATH 路径是 D:\program\Code\go,然后上面的 goStudy 就在 %GOPATH%\src 路径下
//一般在使用 go 命令去 *** 作 go 代码时,我们的 go 编译器会去 %GOROOT%\src 和 %GOPATH%\src 下寻找要 *** 作的 go 代码
第二步,我们找到上一步获得的 .a 文件在哪里,一般情况下,通过 go install 命令产生的文件都在 %GOPATH%\pkg 文件夹下。
D:\program\Code\go\pkg\windows_amd64\goStudy\self
最后一步,我们重新执行最开始的那个命令,不过稍稍有点不一样。
go tool compile -S -I D:\program\Code\go\pkg\windows_amd64 main.go

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/langs/996208.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-21
下一篇 2022-05-21

发表评论

登录后才能评论

评论列表(0条)

保存