我典型的终末测试自动化是参数化的,可以在本地主机(Osx)上或者在暂存盒(linux)上进行,理想情况下,我希望构建单独的跨平台应用程序二进制。
所有这些说明了当我在OSX上为linux构建我的应用程序二进制时,我看到了以下内容
export GOOS=linux
go build
# github.com/alexbrainman/odbc/api
../../../../github.com/alexbrainman/odbc/api/api.go:17:9: undefined: SQLSMALLINT
../../../../github.com/alexbrainman/odbc/api/api.go:18:9: undefined: SQLUSMALLINT
../../../../github.com/alexbrainman/odbc/api/api.go:19:9: undefined: SQLUSMALLINT我的应用程序使用odbc连接到vertica,目前go中唯一可用的Vertica驱动程序使用CGO,有一种方法可以构建跨平台CGO独立、静态编译的应用程序。
发布于 2018-06-20 17:19:37
虽然确实有手动执行此操作的方法,但我建议您使用xgo。我已经在一个涉及使用zserge/webview的项目中成功地使用了它,而gitea项目使用它来交叉编译发行版二进制文件(这涉及到使用SQLite,这需要cgo)。
请记住,它需要Docker,并且需要下载一个非常大的映像,但是您需要运行的所有命令都有一个很好的包装器。
# installing the wrapper
go get github.com/karalabe/xgo
# go into your repo, and then run this to crosscompile!
xgo --targets=windows/*,darwin/*,linux/amd64https://stackoverflow.com/questions/50952210
复制相似问题