添加 gokogiri 依赖项会导致“已杀:9”退出



我使用的环境在MacOS Sierra上go1.8

代码:

package main
import (
    "fmt"
    "io/ioutil"
    "github.com/moovweb/gokogiri"
    "github.com/moovweb/gokogiri/xpath"
)
func main() {
    fmt.Println("hello world")
    b, _ := ioutil.ReadFile("x.xml")
    fmt.Println(string(b))
    doc, _ := gokogiri.ParseXml(b)
    compiled := xpath.Compile("/path/to/node")
    ss, _ := doc.Root().Search(compiled)
    for _, s := range ss {
        fmt.Println(s.Content())
    }
}

在我构建并运行之后:

$ ./hello-world
Killed: 9

甚至不会打印hello world消息。后来,在调查gokogiri README时,我看到了安装libxml2的说明。所以我做了brew install libxml2并尝试了,但这也没有解决问题。

根据类似的问题,同样在Golang issue #19734中,cgo命令在从Apple执行c工具链(Xcode 8.3(更新后在达尔文上被破坏。

解决方案:upgrade to go1.8.1 or above或添加-ldflags=-sbuildtest命令,例如 go build -ldflags=-s .

最新更新