我们希望在胶合子下为Linux构建MacOS。
我们尝试过的。
CGO_ENABLED=1 GOOS=linux GOARCH=amd64 go build
错误
..gopacket/pcap/pcap.go:30:22: undefined: pcapErrorNotActivated
..gopacket/pcap/pcap.go:52:17: undefined: pcapTPtr
..gopacket/pcap/pcap.go:64:10: undefined: pcapPkthdr
docker run -it --rm \
-v /Users/my/server:/go/src/my/server \
-w /go/src/my/server \
-e CGO_ENABLED=1 \
-e CGO_LDFLAGS+="-L/libpcap/libpcap-1.8.1-amd64" \
docker.elastic.co/beats-dev/golang-crossbuild:1.16.4-main \
--build-cmd "GOOS=linux GOARCH=amd64 go build . " \
-p "linux/amd64"
错误
...pcap/pcap_unix.go:34:18: fatal error: pcap.h: No such file or directory
#include <pcap.h>
^
compilation terminated.
是否有更好的方法在MacOS下为linux进行交叉编译gopacket?
发布于 2021-08-20 12:48:22
最后,我们在安装libpcap-dev
之后解决了这个问题。
首先,我们建立了一个新的码头,基于高丽-交叉建造。
Dockerfile
FROM docker.elastic.co/beats-dev/golang-crossbuild:1.16.4-main
RUN apt-get update && apt-get install -y libpcap-dev
构建脚本是
docker run -it --rm \
-v /Users/my/server:/go/src/my/server \
-w /go/src/my/server \
-e CGO_ENABLED=1 \
-e CC=aarch64-linux-gnu-gcc \
-e CGO_LDFLAGS+="-L/libpcap/libpcap-1.8.1" \
golang-new-builder:latest \
--build-cmd "GOOS=linux GOARCH=amd64 go build . " \
-p "linux/amd64"
https://stackoverflow.com/questions/68862181
复制相似问题