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环境测试验证即可
    

      

  • 相关阅读:
    vue动态组件
    服务端渲染和nuxt简单介绍
    nuxt Window 或 Document未定义解决方案
    知乎专栏开放性api
    小程序的一些坑
    搭建微服务器(续)
    调研pwa和sw
    mysql索引原理以及优化
    装饰器
    斐波那契数列和小青蛙跳跳跳问题
  • 原文地址:https://www.cnblogs.com/lyh0301/p/14029166.html
Copyright © 2011-2022 走看看