riscv-gnu-toolchain是RISCV的交叉編譯工具鏈,在GitHub上的地址為:https://github.com/riscv-collab/riscv-gnu-toolchain,在國內(nèi)Gitee上也有鏈接,每天同步一次:https://gitee.com/mirrors/riscv-gnu-toolchain。
第一步就是下載交叉編譯工具鏈:
git clone [email protected]:riscv/riscv-gnu-toolchain.git cdriscv-gnu-toolchain git submodule update --init --recursive第二步下載需要的庫文件:(我是ubuntu的環(huán)境)
sudoapt-getinstallautoconfautomakeautotools-devcurllibmpc-devlibmpfr-devlibgmp-devgawkbuild-essentialbisonflextexinfogperflibtoolpatchutilsbczlib1g-devlibexpat-dev第三步設(shè)置環(huán)境變量:
exportRISCV="your path"http://path指你自己下載的工具鏈的路徑 exportPATH=$PATH:$RISCV/bin source/etc/profile//可以讓關(guān)閉當前終端之后,設(shè)置的環(huán)境變量仍然有效第四步進行編譯:
mkdirbuild//新建一個文件夾,讓整個目錄結(jié)構(gòu)更清晰一點 cd build //生成32位的編譯工具 riscv32-unknown-elf-*** ../configure --prefix=$RISCV --with-arch=rv32gc --with-abi=ilp32d make -j4 //64位的 riscv64-unknown-elf-*** ../configure --prefix=$RISCV make -j4 //64位的linux-gnu-gcc版本 ../configure --prefix=$RISCV make linux -j4以上按位數(shù)分可以編譯為32位和64位兩種,另外就是都可以編譯為elf版本和linux版本。
這個時候,你的交叉編譯工具鏈就做好了。那就寫個hello world來測試下吧。
正常編譯出來hello.o了。
因為是在ubuntu的環(huán)境下,我們是不能直接執(zhí)行這個a.o的,因為他是riscv的交叉編譯工具編譯出來的。下面就安裝一下qemu這個運行環(huán)境吧。
git clone https://git.qemu.org/git/qemu.git cd qemu git submodule init git submodule update --recursiveriscv的qemu有兩種:
用戶模式,可以運行基于riscv指令集編譯的程序文件(target-list=riscv32-linux-user,target-list=riscv64-linux-user)
鏡像模擬器,可以運行基于riscv指令集編譯的linux鏡像(target-list=riscv32-softmmu,target-list=riscv64-softmmu)
因為我上面交叉編譯工具鏈就是32位的,所以qemu也使用32位的,這里要對應上,不然在qemu里面運行編譯好的結(jié)果的會報錯的。
cd qemu ./configure--target-list=riscv32-linux-user make-j4這個在編譯的時候可能會報錯,少庫啥的。 比如:
ERROR:CannotfindNinja //報上面這個錯誤可以通過 apt-get install ninja-build 解決 ERROR: glib-2.48 gthread-2.0 is required to compile QEMU //報上面這個錯誤可以通過 apt-get install libglib2.0-dev 解決總之一個原則:少啥裝啥。 下圖就是編譯好的,注意里面的路徑,我們需要qemu-riscv32這個去執(zhí)行工具鏈編譯好的二進制文件。這里可以像上面一樣把他也放進環(huán)境變量里面,我們以后用起來會比較方便,不用每次都寫qemu-riscv32的路徑了。
最后就來看一下執(zhí)行結(jié)果吧:
至此,RISCV的編譯和運行環(huán)境就弄好了。
-
Linux
+關(guān)注
關(guān)注
87文章
11351瀏覽量
210512 -
Ubuntu
+關(guān)注
關(guān)注
5文章
567瀏覽量
30067 -
環(huán)境搭建
+關(guān)注
關(guān)注
0文章
54瀏覽量
9081 -
RISC-V
+關(guān)注
關(guān)注
45文章
2328瀏覽量
46678
原文標題:RISC-V編譯環(huán)境搭建
文章出處:【微信號:FPGA開源工坊,微信公眾號:FPGA開源工坊】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。
發(fā)布評論請先 登錄
相關(guān)推薦
RISC-V MCU開發(fā) (一):集成開發(fā)環(huán)境
![<b class='flag-5'>RISC-V</b> MCU開發(fā) (一):集成開發(fā)<b class='flag-5'>環(huán)境</b>](https://file.elecfans.com//web2/M00/15/A5/poYBAGFMHkOAere8AAYfUmflICg821.png)
RISC-V開發(fā)分析 CSM32RV20開發(fā)板環(huán)境搭建
![<b class='flag-5'>RISC-V</b>開發(fā)分析 CSM32RV20開發(fā)板<b class='flag-5'>環(huán)境</b><b class='flag-5'>搭建</b>](https://file.elecfans.com//web2/M00/33/2C/pYYBAGIct9qAHO8vAAdAzX5ISKA570.png)
【「RISC-V體系結(jié)構(gòu)編程與實踐」閱讀體驗】-- SBI及NEMU環(huán)境
關(guān)于RISC-V學習路線圖推薦
RISC-V單片機快速入門01-開發(fā)環(huán)境搭建 相關(guān)資料下載
RISC-V MCU開發(fā) (一):集成開發(fā)環(huán)境
【基于CH32V307VCT6】如何搭建RISC-V的開發(fā)環(huán)境
目前RISC-V都支持哪些開發(fā)環(huán)境?
RISC-V嵌入式開發(fā)準備篇1:編譯過程簡介
![<b class='flag-5'>RISC-V</b>嵌入式開發(fā)準備篇1:<b class='flag-5'>編譯</b>過程簡介](https://file.elecfans.com/web1/M00/D9/4E/pIYBAF_1ac2Ac0EEAABDkS1IP1s689.png)
RISC-V單片機快速入門01-開發(fā)環(huán)境搭建
![<b class='flag-5'>RISC-V</b>單片機快速入門01-開發(fā)<b class='flag-5'>環(huán)境</b><b class='flag-5'>搭建</b>](https://file.elecfans.com/web1/M00/D9/4E/pIYBAF_1ac2Ac0EEAABDkS1IP1s689.png)
RISC-V MCU CSM32RV20開發(fā)(一):環(huán)境搭建
![<b class='flag-5'>RISC-V</b> MCU CSM32RV20開發(fā)(一):<b class='flag-5'>環(huán)境</b><b class='flag-5'>搭建</b>](https://file.elecfans.com/web1/M00/D9/4E/pIYBAF_1ac2Ac0EEAABDkS1IP1s689.png)
關(guān)于RISC-V MCU開發(fā)實例(一):環(huán)境搭建
![關(guān)于<b class='flag-5'>RISC-V</b> MCU開發(fā)實例(一):<b class='flag-5'>環(huán)境</b><b class='flag-5'>搭建</b>](https://file.elecfans.com//web2/M00/54/60/poYBAGLXnemADHmJAAB34RR9rTE064.jpg)
評論