交叉編譯zeromq以及go交叉編譯cgo依賴


交叉編譯zeromq,並編譯go可執行文件

交叉編譯libsodium

./configure --host=aarch64-himix100-linux --prefix=/home/udsafe/ && make && make install

交叉編譯libzmq

./configure --host=aarch64-himix100-linux --prefix=/home/udsafe/ && make && make install

交叉編譯libuuid

./configure --host=aarch64-himix100-linux --prefix=/home/udsafe/ && make && make install

交叉編譯czmq (需要uuid則先編譯下uuid)

./configure --host=aarch64-himix100-linux --prefix=/usr/local/udsafe libzmq_CFLAGS='-I/usr/local/udsafe/include' libzmq_LIBS='-L/usr/local/udsafe/lib -lzmq -L/opt/hisi-linux/x86-arm/aarch64-himix100-linux/aarch64-linux-gnu/lib64 -lstdc++'

make check

此時會有報錯信息,不用處理,重新make一下即可

cd src/.libs

cp ../libczmq.la libczmq.lai

make install

編譯完成

交叉編譯libpcap

./configure --host=aarch64-himix100-linux --prefix=/home/udsafe/ && make && make install

  

交叉編譯go環境

去git拉取go編譯環境放置/usr/local/go

在交叉編譯環境導入環境變量

export PATH="/usr/local/go/bin:/opt/hisi-linux/x86-arm/aarch64-himix100-linux/bin:$PATH"

導入國內代理

export GO111MODULE=on

export GOPROXY=https://goproxy.cn

 

  

創建go編譯目錄

mkdir -p /home/dkth/src/github.com

臨時修改gopath路徑

export GOPATH="/home/dkth"

將編譯的項目放到/home/dkth/src下

dkth_check_environment (是個目錄)

mv dkth_check_environment /home/dkth/src
root@ubuntu-VirtualBox:/home/dkth/src# tree dkth_check_environment 
dkth_check_environment
├── check
│   ├── minio.go
│   ├── mqtt.go
│   └── zmq.go
├── dkth_check_environment (編譯出來的可執行文件)
├── go.mod
├── go.sum
└── main.go

交叉編譯需要zeromq 的cgo程序

 PKG_CONFIG_PATH=/home/udsafe/lib/pkgconfig/ CGO_ENABLED=1 GOOS=linux GOARCH=arm64 CC=aarch64-himix100-linux-gcc CGO_CFLAGS=-I/home/udsafe/include CGO_LDFLAGS="-L/home/udsafe/lib -L/opt/hisi-linux/x86-arm/aarch64-himix100-linux/aarch64-linux-gnu/lib64 -lstdc++ -luuid" go build

編譯完成會多出一個dkth_check_environment 可執行文件,在arm環境下執行驗證即可

./dkth_check_environment 

  

交叉編譯libpcap go測試代碼tcp抓包與創建sqlite.db

mv dkth_test /home/dkth/src

cd /home/dkth/src/

root@ubuntu-VirtualBox:/home/dkth/src# tree dkth_test/
dkth_test/
├── go.mod
├── go.sum
└── main.go

CGO_ENABLED=1 GOOS=linux GOARCH=arm64 CC=aarch64-himix100-linux-gcc CGO_CFLAGS='-I/home/udsafe/include' CGO_LDFLAGS='-L/home/udsafe/lib' go build

編譯完成多出一個可執行文件,arm環境測試驗證即可

  


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM