首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >MacOS环境下linux交叉编译gopacket

MacOS环境下linux交叉编译gopacket
EN

Stack Overflow用户
提问于 2021-08-20 12:22:19
回答 1查看 578关注 0票数 1

我们希望在胶合子下为Linux构建MacOS。

我们尝试过的。

  1. CGO_ENABLED=1 GOOS=linux GOARCH=amd64 go build

错误

代码语言:javascript
运行
复制
..gopacket/pcap/pcap.go:30:22: undefined: pcapErrorNotActivated
..gopacket/pcap/pcap.go:52:17: undefined: pcapTPtr
..gopacket/pcap/pcap.go:64:10: undefined: pcapPkthdr
  1. 尝试通过docker 高亮-交叉进行交叉编译
代码语言:javascript
运行
复制
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"

错误

代码语言:javascript
运行
复制
...pcap/pcap_unix.go:34:18: fatal error: pcap.h: No such file or directory
 #include <pcap.h>
                  ^
compilation terminated.

是否有更好的方法在MacOS下为linux进行交叉编译gopacket?

EN

回答 1

Stack Overflow用户

发布于 2021-08-20 12:48:22

最后,我们在安装libpcap-dev之后解决了这个问题。

首先,我们建立了一个新的码头,基于高丽-交叉建造。

Dockerfile

代码语言:javascript
运行
复制
FROM docker.elastic.co/beats-dev/golang-crossbuild:1.16.4-main

RUN apt-get update && apt-get install -y libpcap-dev

构建脚本是

代码语言:javascript
运行
复制
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"
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/68862181

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档