首页 > 系统服务 > 详细

在macOS下启用CGO_ENABLED的交叉编译

时间:2019-06-04 00:28:30      阅读:187      评论:0      收藏:0      [点我收藏+]

在macOS下启用CGO_ENABLED的交叉编译

在启用CGO_ENABLED的情况下,尝试使用下面命令进行Windows平台的交叉编译:

$ CGO_ENABLED=1 GOOS=windows GOARCH=386 go build -x -v -ldflags "-s -w"

 

出现错误如下:

# runtime/cgo
gcc_libinit_windows.c:7:10: fatal error: windows.h file not found

 

安装mingw-w64

# piao @ PiaodeMacBook-Pro in ~ [11:10:19]
$ brew install mingw-w64
==> Downloading https://homebrew.bintray.com/bottles/mingw-w64-5.0.4_1.mojave.bottle.tar.gz
Already downloaded: /Users/piao/Library/Caches/Homebrew/downloads/954c462f9298678f85a2ca518229e941d1daed366c84c339900c756e7ca8ad25--mingw-w64-5.0.4_1.mojave.bottle.tar.gz
==> Pouring mingw-w64-5.0.4_1.mojave.bottle.tar.gz
??  /usr/local/Cellar/mingw-w64/5.0.4_1: 7,915 files, 747.7MB

# piao @ PiaodeMacBook-Pro in ~ [11:10:56]
$ which x86_64-w64-mingw32-gcc
/usr/local/bin/x86_64-w64-mingw32-gcc

 

编译x64

可执行文件

$ CGO_ENABLED=1 CC=x86_64-w64-mingw32-gcc CXX=x86_64-w64-mingw32-g++ GOOS=windows GOARCH=amd64 go build -x -v -ldflags "-s -w" -o test_x64.exe

 

静态库

$ CGO_ENABLED=1 CC=x86_64-w64-mingw32-gcc CXX=x86_64-w64-mingw32-g++ GOOS=windows GOARCH=amd64 go build -buildmode=c-archive -x -v -ldflags "-s -w" -o bin/x64/x64.a main.go

 

动态库

-buildmode=c-archive改为-buildmode=c-shared即可

编译x86

可执行文件

$ CGO_ENABLED=1 CC=i686-w64-mingw32-gcc CXX=i686-w64-mingw32-g++ GOOS=windows GOARCH=386 go build -x -v -ldflags "-s -w" -o test_x86.exe

 

静态库

$ CGO_ENABLED=1 CC=i686-w64-mingw32-gcc CXX=i686-w64-mingw32-g++ GOOS=windows GOARCH=386 go build -buildmode=c-archive -x -v -ldflags "-s -w" -o bin/x86/x86.a main.go

 

动态库

-buildmode=c-archive改为-buildmode=c-shared即可

 

原文连接:https://www.dllhook.com/post/244.html#toc_1

在macOS下启用CGO_ENABLED的交叉编译

原文:https://www.cnblogs.com/tsxylhs/p/10970744.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!