我正在使用的环境是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自述文件时,我看到了有关安装libxml2的说明。所以我做了brew install libxml2
并尝试了,但也没有解决问题。
答案 0 :(得分:1)
在执行来自Apple的c工具链(Xcode 8.3)更新后,根据similar issue以及Golang issue #19734
,cgo
命令在darwin中被破坏。
解决方案:upgrade to go1.8.1 or above
或将-ldflags=-s
添加到build
或test
命令,例如go build -ldflags=-s
。