交叉編譯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環境測試驗證即可
