我正在尝试创建一个针对Go编写的应用程序的无人值守(可能是确定性的)构建流程。
该想法是使用创建Dockerfile文件,安装所有先决条件,以便可以轻松地与他人共享构建过程,而不需要真正的Windows安装。
然而,我在尝试构建具有C绑定的库时卡住了。
我得到了这个非常不描述性的错误提示。
Googling这个错误只有两个搜索结果,与我的用例无关。希望有人曾经遇到过这个问题。
编辑2:目前还不确定解决方案,但是我已经...
该想法是使用创建Dockerfile文件,安装所有先决条件,以便可以轻松地与他人共享构建过程,而不需要真正的Windows安装。
然而,我在尝试构建具有C绑定的库时卡住了。
我得到了这个非常不描述性的错误提示。
C:\godev\src\github.com\obscuren\secp256k1-go>go build --work
WORK=C:\users\root\Temp\go-build287695705
# _/C_/godev/src/github.com/obscuren/secp256k1-go
copying $WORK\_\C_\godev\src\github.com\obscuren\secp256k1-go\_obj\_cgo_defun.8 to $WORK\_\C_\godev\src\github.com\obscuren\secp256k1-go.a: write $WORK\_\C_\godev\src\github.com\obscuren\secp256k1-go.a: Access denied.
完整日志可以在此找到,使用-x参数。
我可以在OS X和“真实”的Windows安装上轻松构建此库。
任何帮助将不胜感激。
编辑:
使用OneofOne提供的大纲也会给我带来一些错误。
# runtime/cgo
pkg/runtime/cgo/cgo.go:26:46: fatal error: sys/types.h: No such file or directory.
compilation terminated.
当我启用Go的交叉编译时,最初遇到了这个错误。我通过安装gcc-multilib来克服它。下一个问题是以下内容。
# runtime/cgo
gcc: error: unrecognized command line option ‘-mthreads’
Googling这个错误只有两个搜索结果,与我的用例无关。希望有人曾经遇到过这个问题。
编辑2:目前还不确定解决方案,但是我已经...
apt-get install gcc-multilib
apt-get install gcc-mingw-w64
并使用
GOOS=windows GOARCH=386 CGO_ENABLED=1 CXX_FOR_TARGET=i686-w64-mingw32-g++ CC_FOR_TARGET=i686-w64-mingw32-gcc ./make.bash
现在我又向前迈进了一步。:)