zoukankan      html  css  js  c++  java
  • 交叉编译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环境测试验证即可
    

      

  • 相关阅读:
    微服务之初识微服务
    常见的认证机制及JSON WEB TOKEN
    深入理解缓存之缓存预热与淘汰策略
    深入理解缓存之缓存和数据库的一致性
    深入理解缓存之缓存存在的问题及应对措施
    深入理解缓存之常见的缓存算法
    计算机网络之HTTP、HTTPS、HTTP2
    计算机网络之TCP(三次握手、四次挥手等),UDP及DNS
    计算机网络之网络体系架构与IP
    深入理解MyBatis(四)--缓存
  • 原文地址:https://www.cnblogs.com/lyh0301/p/14029166.html
Copyright © 2011-2022 走看看