https://github.com/confluentinc/confluent-kafka-go/blob/master/README.md 根据这个文档说的,macOS 可以直接编译生成 linux 运行的可执行文件, 执行:CGO_ENABLED=0 GOOS=linux GOARCH=amd64 go build 可是会报 image.png 后来发现 librdkafka 是基于C的,所以需要开启CGO_ENABLED 执行:CGO_ENABLED=1 GOOS=li...
$ CGO_ENABLED=1 GOARCH=amd64 GOOS=linux go build -o myserver main.go 除了这里给出的这几个变量外,还有一些其它变量,如 GODEBUG、GOFLAGS、GOPROXY 等,所有支持环境变量都可以在 里找到,有兴趣的话可以看看他们的作用。 这里重点介绍一下 CGO_ENABLED 环境变量对我们程序的影响。 CGO_ENABLED是用来控制go...
CGO_ENABLED=0 GOOS=linux GOARCH=amd64 go build 或者加上可选参数 CGO_ENABLED=0 GOOS=linux GOARCH=amd64 go build -ldflags '-s -w --extldflags "-static -fpic"' main.go CGO_ENABLED 这个参数默认为1,开启CGO。需要指定为0来关闭,因为CGO不支持交叉编译。 GOOS 和 GOARCH 用来指定要构建的平...
使用CGO_ENABLED=1,我得到: $ CGO_ENABLED=1 GOOS=linux GOARCH=amd64 ./script/with-static.sh go install ./... # runtime/cgo ld: unknown option: --build-id=none clang: error: linker command failed with exit code 1 (use -v to see invocation) 使用-compiler=gccgo,我得到: $ GOOS=linu...
CGO_ENABLED=1GOOS=linux GOARCH=amd64 CC=musl-gccCGO_LDFLAGS="-static"go build -o ../bin/mypro mypro 如果你是用docker镜像方式构建可以使用如下dockerfile文件 FROM golang:1.14.4-alpineENV TZ=Asia/Shanghai RUN echo-e http://mirrors.aliyun.com/alpine/v3.10/main/ > /etc/apk/repositories ...
小菜刀的开发机器:amd64架构,darwin系统。目标编译平台:amd64架构,linux系统。现想将上述含有CGO的代码编译为目标平台的可执行文件。 $ GOOS=linux GOARCH=amd64 CGO_ENABLED=1 go build -o main main.go 通过以上命令,得到编译错误如下 /usr/local/go/pkg/tool/darwin_amd64/link: running clang failed: exi...
CGO_ENABLED=1 GOOS=linux GOARCH=arm CC=arm-linux-gnueabihf-gcc go build -buildmode=c-shared -o share.so 1. 命令成功运行,此时目录下已经生成了一个叫做 share.so 的文件,通过 file 命令查看其属性,可以确认确实为 arm 32 版本。 share.so: ELF 32-bit LSB shared object, ARM, EABI5 version 1...
debian10中,带go-sqlite3包的golang程序,交叉编译到win64 参考【golang交叉编译:Linux - Windows】 因为要开启 CGO 所以用 linux的gcc 是不能编译win的exe。 apt install gcc-mingw-w64, 然后指定用 mingw 的 gcc 编译器, 交叉编译。 32bit exe:CGO_ENABLED=1 GOOS=windows GOARCH=386 CC=i686-w64-ming...
RUN GOOS=linux CGO_ENABLED=1 GOARCH=amd64 go build -ldflags="-w -s" -o /go/bin/app -tags timetzdata FROM scratch # Import the user and group files from the builder. COPY --from=builder /etc/passwd /etc/passwd COPY --from=builder /etc/group /etc/group ...
$ GOOS=linux GOARCH=amd64 CGO_ENABLED=1 go build -o main main.go 通过以上命令,得到编译错误如下 /usr/local/go/pkg/tool/darwin_amd64/link: running clang failed:exitstatus 1 ld: warning: ignoring file /var/folders/xk/gn46n46d503dsztbc6_9qb2h0000gn/T/go-link-220081766/go.o, building...