如何在Ubuntu上搭建编译环境:修订间差异

来自Bouffalo Lab Docs
跳转到导航 跳转到搜索
无编辑摘要
无编辑摘要
 
第27行: 第27行:
</syntaxhighlight>
</syntaxhighlight>


然后在当前终端下执行<code>source ~/.bashrc</code>使PATH环境变量生效。
然后在当前终端下执行<code>source ~/.bashrc</code>使PATH环境变量生效,然后执行<code>riscv64-unknown-elf-gcc -v</code>应该可以看到GCC运行的打印。


<syntaxhighlight lang="bash">
<syntaxhighlight lang="bash">
jenkins@debian:/data/toolchain_gcc_t-head_linux/bin$ source ~/.bashrc
jenkins@debian:/data/toolchain_gcc_t-head_linux/bin$ source ~/.bashrc
jenkins@debian:/data/toolchain_gcc_t-head_linux/bin$ echo $PATH
jenkins@debian:/data/toolchain_gcc_t-head_linux/bin$ echo $PATH
/data/toolchain_gcc_t-head_linux/bin:/home/jenkins/.local/bin:/data/toolchain_gcc_t-head_linux/bin:/data/jenkins_tools:/usr/local/bin:/usr/bin:/bin:/usr/local/games:/usr/games
/data/toolchain_gcc_t-head_linux/bin:/home/jenkins/.local/bin:/data/toolchain_gcc_t-head_linux/bin:/data/jenkins_tools:/usr/local/bin:/usr/bin:/bin:/usr/local/games:/usr/games
jenkins@debian:/data/toolchain_gcc_t-head_linux/bin$
 
jenkins@debian:/data/toolchain_gcc_t-head_linux/bin$ riscv64-unknown-elf-gcc -v
jenkins@debian:/data/toolchain_gcc_t-head_linux/bin$ riscv64-unknown-elf-gcc -v
Using built-in specs.
Using built-in specs.
第47行: 第48行:


== 安装环境依赖 ==
== 安装环境依赖 ==
Bouffalo SDK Build依赖CMake工具,在Ubuntu下可以直接使用APT工具安装:


更新源:<syntaxhighlight lang="bash">
<syntaxhighlight lang="bash">
$ sudo apt update
$ sudo apt update
</syntaxhighlight>Bouffalo SDK需要CMake工具:
<syntaxhighlight lang=shell>
$ sudo apt install cmake
$ sudo apt install cmake
</syntaxhighlight>下载编译工具链:<syntaxhighlight lang="bash">
</syntaxhighlight>
git clone "https://github.com/bouffalolab/bouffalo_sdk”
</syntaxhighlight>如果你使用clangd来作为LSP实现工具,则下载 bear和clangd :<syntaxhighlight lang="bash">$ sudo apt install clangd
$ sudo apt install bear
#该工具和make一起使用时会生成 .json文件,该文件记录各种编译参数路径等信息,用于LSP通信使用</syntaxhighlight>执行时则执行 根据手册执行对应参数,在前面加上一个 bear即可,例如:<syntaxhighlight lang="bash">
bear -- make clean && make CHIP=bl616 BOARD=bl616dk
</syntaxhighlight>如果你选择使用VScode,那么只需要下载对应插件即可。


但VScode的原生插件的支持比较弱,实际验证发现有可能导致头文件跳转错误。但好消息是该插件也会采用bear生成的compile_commands.json,所以建议仍然使用bear生成一下。<gallery widths="500" heights="200">
CMake安装成功之后,可以进入到Bouffalo SDK目录下的<code>examples/helloworld</code>,执行<code>make</code>即可看到编译的日志。
</gallery>也可以在VScode中配置为clangd。

2025年7月16日 (三) 04:41的最新版本

安装编译工具链

T-Head GCC Toolchain的地址:https://github.com/bouffalolab/toolchain_gcc_t-head_linux

使用Git clone下载T-Head GCC Toolchain: git clone git@github.com:bouffalolab/toolchain_gcc_t-head_linux.git

假设clone到了/data/toolchain_gcc_t-head_linux目录下:

jenkins@debian:/data/toolchain_gcc_t-head_linux$ ls -l
total 28
drwxr-xr-x 2 jenkins jenkins 4096 Dec 24  2022 bin
drwxr-xr-x 3 jenkins jenkins 4096 Dec 24  2022 include
drwxr-xr-x 3 jenkins jenkins 4096 Dec 24  2022 lib
drwxr-xr-x 2 jenkins jenkins 4096 Dec 24  2022 lib64
drwxr-xr-x 3 jenkins jenkins 4096 Dec 24  2022 libexec
drwxr-xr-x 5 jenkins jenkins 4096 Dec 24  2022 riscv64-unknown-elf
drwxr-xr-x 7 jenkins jenkins 4096 Dec 24  2022 share

然后把/data/toolchain_gcc_t-head_linux/bin路径加入到系统PATH环境变量中,假设你使用的是bash,则在~/.bashrc文件最后一行添加:

... bashrc origin data ...

# add t-head gcc toolchain to PATH
export PATH=/data/toolchain_gcc_t-head_linux/bin:$PATH

然后在当前终端下执行source ~/.bashrc使PATH环境变量生效,然后执行riscv64-unknown-elf-gcc -v应该可以看到GCC运行的打印。

jenkins@debian:/data/toolchain_gcc_t-head_linux/bin$ source ~/.bashrc

jenkins@debian:/data/toolchain_gcc_t-head_linux/bin$ echo $PATH
/data/toolchain_gcc_t-head_linux/bin:/home/jenkins/.local/bin:/data/toolchain_gcc_t-head_linux/bin:/data/jenkins_tools:/usr/local/bin:/usr/bin:/bin:/usr/local/games:/usr/games

jenkins@debian:/data/toolchain_gcc_t-head_linux/bin$ riscv64-unknown-elf-gcc -v
Using built-in specs.
COLLECT_GCC=riscv64-unknown-elf-gcc
COLLECT_LTO_WRAPPER=/data/toolchain_gcc_t-head_linux/bin/../libexec/gcc/riscv64-unknown-elf/10.2.0/lto-wrapper
Target: riscv64-unknown-elf
Configured with: /mnt/ssd/jenkins_iotsw/slave/workspace/Toolchain/build-gnu-riscv/./source/riscv/riscv-gcc/configure --target=riscv64-unknown-elf --with-gmp=/mnt/ssd/jenkins_iotsw/slave/workspace/Toolchain/build-gnu-riscv/build-gcc-riscv64-unknown-elf/build-Xuantie-900-gcc-elf-newlib-x86_64-V2.6.1/lib-for-gcc-x86_64-linux --with-mpfr=/mnt/ssd/jenkins_iotsw/slave/workspace/Toolchain/build-gnu-riscv/build-gcc-riscv64-unknown-elf/build-Xuantie-900-gcc-elf-newlib-x86_64-V2.6.1/lib-for-gcc-x86_64-linux --with-mpc=/mnt/ssd/jenkins_iotsw/slave/workspace/Toolchain/build-gnu-riscv/build-gcc-riscv64-unknown-elf/build-Xuantie-900-gcc-elf-newlib-x86_64-V2.6.1/lib-for-gcc-x86_64-linux --with-libexpat-prefix=/mnt/ssd/jenkins_iotsw/slave/workspace/Toolchain/build-gnu-riscv/build-gcc-riscv64-unknown-elf/build-Xuantie-900-gcc-elf-newlib-x86_64-V2.6.1/lib-for-gcc-x86_64-linux --with-libmpfr-prefix=/mnt/ssd/jenkins_iotsw/slave/workspace/Toolchain/build-gnu-riscv/build-gcc-riscv64-unknown-elf/build-Xuantie-900-gcc-elf-newlib-x86_64-V2.6.1/lib-for-gcc-x86_64-linux --with-pkgversion='Xuantie-900 elf newlib gcc Toolchain V2.6.1 B-20220906' CXXFLAGS='-g -O2 -DTHEAD_VERSION_NUMBER=2.6.1 ' --enable-libgcctf --prefix=/mnt/ssd/jenkins_iotsw/slave/workspace/Toolchain/build-gnu-riscv/build-gcc-riscv64-unknown-elf/Xuantie-900-gcc-elf-newlib-x86_64-V2.6.1 --disable-shared --enable-threads=posix --enable-languages=c,c++ --with-system-zlib --enable-tls --with-newlib --with-sysroot=/mnt/ssd/jenkins_iotsw/slave/workspace/Toolchain/build-gnu-riscv/build-gcc-riscv64-unknown-elf/Xuantie-900-gcc-elf-newlib-x86_64-V2.6.1/riscv64-unknown-elf --with-native-system-header-dir=/include --disable-libmudflap --disable-libssp --disable-libquadmath --disable-libgomp --disable-nls --disable-tm-clone-registry --src=/mnt/ssd/jenkins_iotsw/slave/workspace/Toolchain/build-gnu-riscv/./source/riscv/riscv-gcc --enable-multilib --with-abi=lp64d --with-arch=rv64gcxthead 'CFLAGS_FOR_TARGET=-Os   -mcmodel=medany' 'CXXFLAGS_FOR_TARGET=-Os   -mcmodel=medany'
Thread model: posix
Supported LTO compression algorithms: zlib
gcc version 10.2.0 (Xuantie-900 elf newlib gcc Toolchain V2.6.1 B-20220906)


安装环境依赖

Bouffalo SDK Build依赖CMake工具,在Ubuntu下可以直接使用APT工具安装:

$ sudo apt update
$ sudo apt install cmake

CMake安装成功之后,可以进入到Bouffalo SDK目录下的examples/helloworld,执行make即可看到编译的日志。