• 交叉编译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环境测试验证即可
    

      

  • 相关阅读:
    php读取大文件如日志文件
    大型站点高并发架构技术
    Nginx配置文件nginx.conf详细说明文档
    关于PHP高并发抢购系统设计
    Mysql常用的锁机制
    Sping基础
    Reliable Master持续集成环境搭建Centos
    Win7 macaca自动化环境搭建 PC篇
    安卓appium无线调试
    Selenium PageFactory使用
  • 原文地址:https://www.cnblogs.com/lyh0301/p/14029166.html
Copyright © 2020-2023  润新知