英文:
Cannot find package for shared library
问题
我正在尝试在Go语言中使用一个共享库,我正在按照这篇博文进行操作:http://blog.ralch.com/tutorial/golang-sharing-libraries/
但是当我执行构建命令时,出现了错误:
simo@simo:~/gopath$ go build -linkshared -o app effe/prova
src/effe/prova/prova.go:3:8: 找不到包"libmath",在以下任何位置都找不到:
/usr/local/go/src/libmath (来自$GOROOT)
/home/simo/gopath/src/libmath (来自$GOPATH)
我对Go语言还不太熟悉,所以我也会展示我的环境信息...
simo@simo:~/gopath$ pwd
/home/simo/gopath
simo@simo:~/gopath$ echo $GOPATH
/home/simo/gopath
simo@simo:~/gopath$ tree
.
├── pkg
│ └── linux_amd64_dynlink
│ ├── effe
│ │ ├── libmath.a
│ │ └── libmath.shlibname
│ └── libeffe-libmath.so
└── src
└── effe
├── libmath
│ └── libmath.go
└── prova
└── prova.go
7 directories, 5 files
simo@simo:~/gopath$ cat src/effe/libmath/libmath.go
// filename: libmath.go
package libmath
func Sum(x, y int) int {
return x + y
}
simo@simo:~/gopath$ cat src/effe/prova/prova.go
package main
import "libmath"
import "fmt"
func main() {
fmt.Printf("5 op 10 => %d", libmath.Sum(5, 10))
}
simo@simo:~/gopath$ go install -buildmode=shared -linkshared effe/libmath
simo@simo:~/gopath$ go build -linkshared -o app effe/prova
src/effe/prova/prova.go:3:8: 找不到包"libmath",在以下任何位置都找不到:
/usr/local/go/src/libmath (来自$GOROOT)
/home/simo/gopath/src/libmath (来自$GOPATH)
我做错了什么?
英文:
I am trying to use a shared library in go-lang, I am following this blog post: http://blog.ralch.com/tutorial/golang-sharing-libraries/
But when I hit build I get back an error:
simo@simo:~/gopath$ go build -linkshared -o app effe/prova
src/effe/prova/prova.go:3:8: cannot find package "libmath" in any of:
/usr/local/go/src/libmath (from $GOROOT)
/home/simo/gopath/src/libmath (from $GOPATH)
I am pretty new to go, so I will show also my environment...
simo@simo:~/gopath$ pwd
/home/simo/gopath
simo@simo:~/gopath$ echo $GOPATH
/home/simo/gopath
simo@simo:~/gopath$ tree
.
├── pkg
│   └── linux_amd64_dynlink
│   ├── effe
│   │   ├── libmath.a
│   │   └── libmath.shlibname
│   └── libeffe-libmath.so
└── src
└── effe
├── libmath
│   └── libmath.go
└── prova
└── prova.go
7 directories, 5 files
simo@simo:~/gopath$ cat src/effe/libmath/libmath.go
// filename: libmath.go
package libmath
func Sum(x, y int) int {
return x + y
}
simo@simo:~/gopath$ cat src/effe/prova/prova.go
package main
import "libmath"
import "fmt"
func main() {
fmt.Printf("5 op 10 => %d", libmath.Sum(5, 10))
}
simo@simo:~/gopath$ go install -buildmode=shared -linkshared effe/libmath
simo@simo:~/gopath$ go build -linkshared -o app effe/prova
src/effe/prova/prova.go:3:8: cannot find package "libmath" in any of:
/usr/local/go/src/libmath (from $GOROOT)
/home/simo/gopath/src/libmath (from $GOPATH)
What am I doing wrong ?
答案1
得分: 1
“libmath”的导入路径是“effe/libmath”。
在尝试更复杂的构建和执行模式之前,先尝试在标准构建模式下使您的构建工作正常。
英文:
The import path for "libmath" is "effe/libmath".
Try to get your build working in the standard build mode before experimenting with more complicated build and execution modes.
通过集体智慧和协作来改善编程学习和解决问题的方式。致力于成为全球开发者共同参与的知识库,让每个人都能够通过互相帮助和分享经验来进步。
评论