在进行开发之前,还需要一些其他的必要库以及编译 OK3576 Linux 源码必要库安装,我们使用以下命令逐一安装,安装前需保证网络可正常使用,能上外网:
sudo apt-get update//更新下载源信息
sudo apt-get install build-essential//提供编译程序必须软件包的列表信息
sudo apt-get install libncurses*//用于生成基于文本的用户界面
sudo apt-get install lzop//基于 Lzo 库的压缩解压工具
sudo apt-get install net-tools//网络配置工具
sudo apt-get update//更新 apt-get 下载源
sudo apt-get install openssh-server vim git fakeroot//必备工具包的安装
sudo apt-get install repo git ssh make gcc libssl-dev liblz4-tool expect g++ patchelf chrpath gawk texinfo chrpath diffstat binfmt-support qemu-user-static live-build bison flex fakeroot cmake gcc-multilib g++-multilib unzip device-tree-compiler libncurses5-dev
这些库文件是自行搭建 3576 Linux 编译环境时,准备编译 Linux 源码需要下载的库文件。
mkdir -p /home/forlinx/3576//按照顺序创建工作目录
将用户资料中的源码文件和交叉编译工具链拷贝到虚拟机/home/forlinx/3576 目录。
cd /home/forlinx/3576//切换到工作目录
tar -xvf kernel-6.1.tar.bz2//在当前位置解压压缩包
tar -xvf prebuilts.tar.bz2
运行命令后等待完成即可。
在~/.bashrc文件夹中添加交叉编译工具的路径,并且执行source ~/.bashrc
命令更新环境变量。
# ok3576
export CROSS_COMPILE=/home/sdk/ok3576/prebuilts/gcc/linux-x86/aarch64/gcc-arm-10.3-2021.07-x86_64-aarch64-none-linux-gnu/bin/aarch64-none-linux-gnu-
export PATH=$PATH:/home/sdk/ok3576/prebuilts/gcc/linux-x86/aarch64/gcc-arm-10.3-2021.07-x86_64-aarch64-none-linux-gnu/bin/
main.cpp
#include <iostream>
int main() {
std::cout << "Hello World" << std::endl;
return 0;
}
Makefile
CC=${CROSS_COMPILE}g++
CFLAGS=-std=c++11 -Wall
EXEC=hello_world
all: $(EXEC)
$(EXEC): main.cpp
$(CC) $(CFLAGS) -o $@ $<
clean:
rm -f $(EXEC)
执行make all
即可完成交叉编译并生成可执行文件,并将可执行文件复制到开发板上
scp ./hello_world root@192.168.247.90:/userdata
赋予可执行权限并运行
root@ok3576-buildroot:/userdata# chmod +x hello_world
root@ok3576-buildroot:/userdata# ./hello_world
更多回帖