2016-02-07 67 views
0

我试图使用去浪共享库找到包,我下面这篇博客文章:http://blog.ralch.com/tutorial/golang-sharing-libraries/无法为共享库

但是,当我击筑我回来了一个错误:

[email protected]:~/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) 

我非常新去的,所以我还将展示我的环境...

[email protected]:~/gopath$ pwd 
/home/simo/gopath 
[email protected]:~/gopath$ echo $GOPATH 
/home/simo/gopath 
[email protected]:~/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 
[email protected]:~/gopath$ cat src/effe/libmath/libmath.go 
// filename: libmath.go 
package libmath 

func Sum(x, y int) int { 
    return x + y 
} 
[email protected]:~/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)) 
} 
[email protected]:~/gopath$ go install -buildmode=shared -linkshared effe/libmath 
[email protected]:~/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) 

我在做什么错?

回答

1

“libmath”的导入路径是“effe/libmath”。

尝试让您的构建在标准构建模式下工作,然后再尝试更复杂的构建和执行模式。

+0

你完全正确!你的意思是“在尝试更复杂的构建和执行模式之前,试着让你的构建工作在标准构建模式下。” – Siscia

+0

@Siscia:这个问题与'-buildmode = shared'或共享库无关。只需使用'go build'或'go install'标准模式构建就会显示出问题。 – JimB