SWIG + Go:不使用 cgo 时不允许使用 C 源文件

SWIG + Go: C source files not allowed when not using cgo

我正在尝试使用 SWIG 在 Go 中包装这个库 (https://github.com/lemire/EWAHBoolArray),但是自从我升级到 1.4 后我遇到了很多问题

我已成功使用 Go 1.3.3 并按照 SWIG 站点上的 SWIG + Go 说明进行操作。我不得不手动编译和安装包,而不是使用 go build,但一切正常。

现在,当我尝试使用 Go 1.4.2 运行 相同的程序时,我得到了这个错误:

ewah_usage.go:5:2: C source files not allowed when not using cgo: goewah_gc.c

我使用最新的 SWIG 和最新的 Go 重新构建了软件包,它似乎安装正确。但是每当我 运行 一个程序使用这个库时,我都会得到上面的错误。

我的测试程序(goewah是我用SWIG搭建的库)

package main

import (
    "fmt"
    "bitbucket.org/evanh/goewah"
)

func main() {
    x := goewah.NewEWAHBoolArray()
    x.Set(1)
    x.Set(2)
    fmt.Println(x.Get(1))
}

这是一个错误。对不起。添加一个只写

的文件
package p
import "C"

你应该绕过它。