之前的文章:【平头哥Sipeed LicheeRV 86 Panel测评】4-编译环境搭建,尝试了一次编译环境的搭建以及HelloWorld程序的测试,最终在板子上运行时,提示glibc的版本不对:
为此,提交了一个工单,咨询了平头哥开放社区的工程师,在几次信息回复之后,为我提供了另一种编译工具链的配置方式,成功运行了HelloWorld程序。
此工具链推荐使⽤ ubuntu18.04 或 ubuntu20.04 环境。
选择如下资源进行下载:
下载后解压,得到d1_sdk文件夹,再进入toolchain目录,复制d1-sdk.tar.xz到自己的Ubuntu虚拟器中:
然后解压:
star xvf d1-sdk.tar.xz
进入d1-sdk目录,可以看到4个文件:
d1-sdk目录的sh脚本文件用来配置编译工具链,在配置之前,需要现在“~/.local”目录下创建一个文件夹:
mkdir -p ~/.local/riscv64-toolchain
然后部署sdk到 ~/.local/riscv64-toolchain 目录下:
cd d1-sdk
./oecore-x86_64-riscv64-toolchain-nodistro.0.sh -d ~/.local/riscv64-toolchain
部署过程需要几分钟,部署完之后的打印如下图:
可以进入到“~/.local/riscv64-toolchain”目录中看一下:
接着就可以尝试编译HelloWord程序了。
在编译之前,需要再执行一次如下指令:
source ~/.local/riscv64-toolchain/environment-setup-riscv64-oe-linux
我这里执行后,提示如下的LD_LIBRARY_PATH的问题,说是LD_LIBRARY_PATH变量不应该被赋值。
那就先看一下LD_LIBRARY_PATH里是什么值:
echo $LD_LIBRARY_PATH
确认这个值暂时无用后,可以先使用unset指令去掉该值:
unset LD_LIBRARY_PATH
然后再次执行脚本文件,没有再出现任何提示:
然后就可以编译了,可以先看一下这次的编译工具链信息:
echo $CC
riscv64-linux-gcc -fstack-protector-strong -D_FORTIFY_SOURCE=2 -Wformat -Wformat-security -Werror=format-security --sysroot=/home/xxpcb/.local/riscv64-toolchain/sysroots/riscv64-oe-linux --no-sysroot-suffix
然后使用如下指令编译:
$CC -o HelloWorld HelloWorld.c
最终得到HelloWorld文件。
和之前一样,通过ADB工具,将HelloWorld文件拷贝到板子中进行运行,此次运行成功,输出了程序中的打印:
本篇是之前文章【平头哥Sipeed LicheeRV 86 Panel测评】4-编译环境搭建的补充,通过另一种方式打印编译工具链,实现了HelloWorld程序的运行。
引用: sakes 发表于 2023-11-13 15:56 想问博主现在还保留有这个sdk工具包吗,网址已经过期了
文件比较大,放网盘了 链接:https://pan.baidu.com/s/124Yh6brL3Kp48_qolUXAKA
提取码:49rl