DDZZ669 发表于 2022-2-20 11:40

【平头哥Sipeed LicheeRV 86 Panel测评】8-再次配置编译工具链-运行HelloWord

<p cid="n0" mdtype="paragraph">之前的文章:<a href="https://bbs.eeworld.com.cn/thread-1193137-1-1.html" target="_blank">【平头哥Sipeed LicheeRV 86 Panel测评】4-编译环境搭建</a>,尝试了一次编译环境的搭建以及HelloWorld程序的测试,最终在板子上运行时,提示glibc的版本不对:</p>

<p cid="n2" mdtype="paragraph"></p>

<p cid="n3" mdtype="paragraph">为此,提交了一个工单,咨询了平头哥开放社区的工程师,在几次信息回复之后,为我提供了另一种编译工具链的配置方式,成功运行了HelloWorld程序。</p>

<h1 cid="n4" mdtype="heading">1 另一种编译工具链配置</h1>

<h2 cid="n5" mdtype="heading">1.1 下载D1开发板的SDK</h2>

<p cid="n6" mdtype="paragraph">下载地址:<a href="https://occ.t-head.cn/vendor/detail/download?spm=a2cl5.26076654.0.0.5b08180fiWiYUv&amp;id=3913671825380876288&amp;vendorId=3878439890589003776&amp;module=1#sticky">https://occ.t-head.cn/vendor/detail/download?spm=a2cl5.26076654.0.0.5b08180fiWiYUv&amp;id=3913671825380876288&amp;vendorId=3878439890589003776&amp;module=1#sticky</a></p>

<p cid="n7" mdtype="paragraph">此工具链推荐使⽤ ubuntu18.04 或 ubuntu20.04 环境。</p>

<p cid="n8" mdtype="paragraph">选择如下资源进行下载:</p>

<p cid="n9" mdtype="paragraph"></p>

<p cid="n10" mdtype="paragraph">下载后解压,得到d1_sdk文件夹,再进入toolchain目录,复制d1-sdk.tar.xz到自己的Ubuntu虚拟器中:</p>

<p cid="n11" mdtype="paragraph"></p>

<p cid="n12" mdtype="paragraph">然后解压:</p>

<pre>
<code>star xvf d1-sdk.tar.xz</code></pre>

<p cid="n14" mdtype="paragraph">进入d1-sdk目录,可以看到4个文件:</p>

<p cid="n15" mdtype="paragraph"></p>

<p cid="n16" mdtype="paragraph">&nbsp;</p>

<h2 cid="n17" mdtype="heading">1.2 运行脚本文件</h2>

<p cid="n18" mdtype="paragraph">d1-sdk目录的sh脚本文件用来配置编译工具链,在配置之前,需要现在&ldquo;~/.local&rdquo;目录下创建一个文件夹:</p>

<pre>
<code class="language-bash">mkdir -p ~/.local/riscv64-toolchain</code></pre>

<p cid="n20" mdtype="paragraph">然后部署sdk到 ~/.local/riscv64-toolchain 目录下:</p>

<pre>
<code>cdd1-sdk
./oecore-x86_64-riscv64-toolchain-nodistro.0.sh -d ~/.local/riscv64-toolchain</code></pre>

<p cid="n22" mdtype="paragraph">部署过程需要几分钟,部署完之后的打印如下图:</p>

<p cid="n23" mdtype="paragraph"></p>

<p cid="n24" mdtype="paragraph">可以进入到&ldquo;~/.local/riscv64-toolchain&rdquo;目录中看一下:</p>

<p cid="n25" mdtype="paragraph"></p>

<h2 cid="n26" mdtype="heading">1.3 注意是否有LD_LIBRARY_PATH的问题</h2>

<p cid="n27" mdtype="paragraph">接着就可以尝试编译HelloWord程序了。</p>

<p cid="n28" mdtype="paragraph">在编译之前,需要再执行一次如下指令:</p>

<pre>
<code>source ~/.local/riscv64-toolchain/environment-setup-riscv64-oe-linux</code></pre>

<p cid="n30" mdtype="paragraph">我这里执行后,提示如下的LD_LIBRARY_PATH的问题,说是LD_LIBRARY_PATH变量不应该被赋值。</p>

<p cid="n31" mdtype="paragraph">那就先看一下LD_LIBRARY_PATH里是什么值:</p>

<pre>
<code>echo $LD_LIBRARY_PATH</code></pre>

<p cid="n33" mdtype="paragraph">确认这个值暂时无用后,可以先使用unset指令去掉该值:</p>

<pre>
<code>unset LD_LIBRARY_PATH</code></pre>

<p cid="n35" mdtype="paragraph">然后再次执行脚本文件,没有再出现任何提示:</p>

<p cid="n36" mdtype="paragraph"></p>

<p cid="n37" mdtype="paragraph">然后就可以编译了,可以先看一下这次的编译工具链信息:</p>

<pre>
<code>echo $CC</code></pre>

<pre>
<code>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</code></pre>

<p cid="n48" mdtype="paragraph">然后使用如下指令编译:</p>

<pre>
<code>$CC -o HelloWorld HelloWorld.c</code></pre>

<p cid="n41" mdtype="paragraph">最终得到HelloWorld文件。</p>

<h1 cid="n42" mdtype="heading">2 编译测试HelloWorld</h1>

<p cid="n43" mdtype="paragraph">和之前一样,通过ADB工具,将HelloWorld文件拷贝到板子中进行运行,此次运行成功,输出了程序中的打印:</p>

<p cid="n44" mdtype="paragraph"></p>

<h1 cid="n45" mdtype="heading">3 总结</h1>

<p cid="n46" mdtype="paragraph">本篇是之前文章<a href="https://bbs.eeworld.com.cn/thread-1193137-1-1.html" target="_blank">【平头哥Sipeed LicheeRV 86 Panel测评】4-编译环境搭建</a>的补充,通过另一种方式打印编译工具链,实现了HelloWorld程序的运行。</p>

Jacktang 发表于 2022-2-21 07:34

<p>看起来测评之前的环境搭建比如正确安装Ubuntu虚拟器很重要</p>

sakes 发表于 2023-11-13 15:56

<p>想问博主现在还保留有这个sdk工具包吗,网址已经过期了</p>

DDZZ669 发表于 2023-11-19 13:27

sakes 发表于 2023-11-13 15:56
想问博主现在还保留有这个sdk工具包吗,网址已经过期了

<p>文件比较大,放网盘了&nbsp;链接:https://pan.baidu.com/s/124Yh6brL3Kp48_qolUXAKA&nbsp;<br />
提取码:49rl</p>
页: [1]
查看完整版本: 【平头哥Sipeed LicheeRV 86 Panel测评】8-再次配置编译工具链-运行HelloWord