RK3568开发环境(ubuntu18.04)下实现go编译


前言

RK3568芯片功能强大,在作为边缘网关进行数据采集时,可以使用influxdb数据库进行数据持久化保存。influxdb没有提供C++语言的客户端访问功能。如果我们是用C++开发的应用程序,就没有办法直接访问influxdb。一个变通办法是,我们可以用go语言编写数据库访问程序,然后将其编译成C++可以调用的库函数,再由C++应用程序调用此库函数,以此完成数据库的访问功能。


一、下载编译器

为了实现上述方案。我们需要先下载go编译器。
下载地址为https://golang.google.cn/dl/
在这里插入图片描述
根据需要,选择对应的编译器文件版本下载。

二、解压安装

将上述文件拷贝到开发环境目录下面后,进行解压,
sudo tar -C /usr/local -xzf go1.20.2.linux-amd64.tar.gz

然后添加如下环境变量,
在环境变量配置文件/etc/profile中添加以下内容:

export PATH=$PATH:/usr/local/src/go/bin
export PATH=/home/forlinx/Tool.ins/go1.20.2.linux-amd64/go/bin:$PATH
export GOPROXY=https://goproxy.cn,direct
export GODEBUG=cgocheck=0
export PATH=/home/forlinx/3568/OK3568-linux-source/buildroot/output/OK3568/host/bin:$PATH

三、编译库函数

用go语言编写好influxdb的访问接口函数后,可以开始编译库函数。
如果要编译在x86下运行的库函数,用下列命令

GOOS=linux \
GOARCH=amd64 \
AR=ar \
CC=gcc \
CXX=g++ \
go build -ldflags="-s -w" -buildmode=c-archive -o InfluxTest/bin/libinfluxDB.a main.go

这样编译完成后,在指定目录下会生成相应的库函数,libinfluxDB.a。

如果要编译在3568下运行的库函数,则用下列命令

GOOS=linux \
GOARCH=arm64 \
CGO_ENABLED=1 \
CC=aarch64-linux-gcc \
CXX=aarch64-linux-g++ \
AR=aarch64-linux-gnu-ar \
go build -ldflags="-s -w" -buildmode=c-archive -o InfluxTest/bin/libinfluxDB.a main.go

相关推荐

  1. ubuntu编译rk3588异常

    2024-07-22 14:48:01       34 阅读
  2. RK356x基于Ubuntu20.04搭建ROS开发环境

    2024-07-22 14:48:01       46 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-07-22 14:48:01       52 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-07-22 14:48:01       54 阅读
  3. 在Django里面运行非项目文件

    2024-07-22 14:48:01       45 阅读
  4. Python语言-面向对象

    2024-07-22 14:48:01       55 阅读

热门阅读

  1. 算法学习3——搜索算法

    2024-07-22 14:48:01       17 阅读
  2. IaaS是什么的简称?关于IaaS的介绍

    2024-07-22 14:48:01       18 阅读
  3. [C++]——常见内存泄漏场景

    2024-07-22 14:48:01       16 阅读
  4. element表单disabled功能失效问题

    2024-07-22 14:48:01       16 阅读
  5. 塔子哥的浏览记录-小红书2024笔试(codefun2000)

    2024-07-22 14:48:01       21 阅读
  6. [算法题]mari和shiny

    2024-07-22 14:48:01       17 阅读
  7. 面试官:你对ConcurrentHashMap了解多少?

    2024-07-22 14:48:01       16 阅读
  8. 封装的通用链表(list.c/list.h/test_list.c)

    2024-07-22 14:48:01       17 阅读
  9. 将SQL中的占位符替换成参数

    2024-07-22 14:48:01       14 阅读