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

SWIG+;Go:C不使用cgo时不允许源文件,go,build,swig,Go,Build,Swig,我正试图使用SWIG将这个库()封装在Go中,但自从升级到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和

我正试图使用SWIG将这个库()封装在Go中,但自从升级到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 p
import "C"

你应该绕开它。

如果你遇到这个错误,你似乎没有使用swig,我看不到代码,因为它是一个私有的回购。大概你构建程序的方式已经禁用了Go。如果看不到您运行的命令,很难说清楚原因。假设您没有设置
CGO_ENABLED=0
,另一种可能是您试图交叉编译程序,这在默认情况下会禁用它。我已将代码移动到公共repo。我知道Makefile很糟糕。当前的一个适用于MacOSX,我还有另一个适用于Linux。Makefile当前使用一个硬编码的GOPATH和GOROOT。我完全按照您所说的添加了一个新包,但它没有修复任何问题。我仍然得到同样的错误。不是一个新的包,而是同一个包中的一个新的.go文件。啊,我明白了。这修正了错误。现在我得到了一堆SWIG错误。尽管如此,向前迈进!谢谢
package p
import "C"