• 廖雪峰
    2022-08-24 来自湖北
    如果有不想编译的同学,可以按照以下步骤运行: 1. 安装Ubuntu 22.04 2. 安装编译环境: $ sudo apt-get install autoconf automake autotools-dev curl python3 libmpc-dev libmpfr-dev libgmp-dev gawk build-essential bison flex texinfo gperf libtool patchutils bc zlib1g-dev libexpat-dev 3. 直接安装riscv-gcc发行包: $ sudo apt install gcc-riscv64-linux-gnu gcc-riscv64-unknown-elf picolibc-riscv64-unknown-elf 4. 直接安装qemu发行包: $ sudo apt install qemu-user qemu-system-misc 5. 编写hello.c #include<stdio.h> int main() { printf("Hello, riscv!\n"); return 0; } 6. 编译: $ riscv64-linux-gnu-gcc hello.c -o hello 7. 运行: $ qemu-riscv64 hello qemu-riscv64: Could not open '/lib/ld-linux-riscv64-lp64d.so.1': No such file or directory 如果报错找不到/lib/ld-linux-riscv64-lp64d.so.1,是因为这个文件实际上在/usr/riscv64-linux-gnu/lib下,加个参数运行: $ qemu-riscv64 -L /usr/riscv64-linux-gnu hello Hello, riscv! 最后,riscv64-unknown-elf-gcc编译还没搞定,正在找原因
    展开

    作者回复: 可能 是 网络原因

    共 4 条评论
    10
  • 光华路小霸王
    2022-09-02 来自湖北
    使用了 VS Code 的 Remote Development 远程调试,发现 F5 debug 回找不到编译器和 qemu,shell 登录可以,一通谷歌是 .bashrc 与 .bash_profile 的问题,把环境变量加到 bash_profile 就可以了,vscode 是运行在 login shell 的,加载的是 bash_profile ,不会加载 .bashrc refs: https://github.com/microsoft/vscode-remote-release/issues/854

    作者回复: 66666

    
    1
  • Liu Zheng
    2022-08-24 来自湖北
    纠正一下。在环境变量设置好之前,即使在`/opt/riscv/qemu/bin`目录下,也不能直接跑` qemu-riscv32 -version && qemu-riscv64 -version && qemu-system-riscv32 -version && qemu-system-riscv64 -version`. 而是需要`./qemu-riscv32 ...`.

    作者回复: 嗯 嗯

    
    1
  • TableBear
    2022-08-24 来自湖北
    source 的主要用途是执行文件并从文件加载变量及函数到执行环境。 ~/.bashrc文件中的环境变量已经在用户登录shell的时候加载进执行环境了,此时编辑不会触发加载。必须使用source或者重新登录才能触发重新加载

    作者回复: 是的

    
    1
  • 筱琲
    2022-11-02 来自湖北
    在build 目录下执行配置命令时,遇到几个包缺失,依次安装就好: sudo apt install libglib2.0-dev libpixman-1-dev libsdl2-dev

    作者回复: 嗯嗯 加油

    
    
  • overheat
    2022-09-22 来自湖北
    sudo make -j8, 这里应该不用sudo。

    作者回复: 可以 不用

    
    
  • Geek_d47998
    2022-09-12 来自湖北
    tasks.json和launch.json在老师给的代码,gitee仓库下有,main.c文件里还需要放Makefile后才能按F5编译

    作者回复: 有啊

    
    
  • jeigiye
    2022-09-06 来自湖北
    root@zgye-ubuntu:~/test# cat hello.s .file "hello.c" .option nopic .attribute arch, "rv64i2p0_m2p0_a2p0_f2p0_d2p0_c2p0" .attribute unaligned_access, 0 .attribute stack_align, 16 .text .section .rodata .align 3 .LC0: .string "Risc-V" .align 3 .LC1: .string "Hello %s\n" .text .align 1 .globl main .type main, @function main: addi sp,sp,-16 sd ra,8(sp) sd s0,0(sp) addi s0,sp,16 lui a5,%hi(.LC0) addi a1,a5,%lo(.LC0) lui a5,%hi(.LC1) addi a0,a5,%lo(.LC1) call printf li a5,0 mv a0,a5 ld ra,8(sp) ld s0,0(sp) addi sp,sp,16 jr ra .size main, .-main .ident "GCC: () 12.1.0" root@zgye-ubuntu:~/test# /opt/riscv/qemu/bin/qemu-riscv64 hello Hello Risc-V root@zgye-ubuntu:~/test# ubuntu22.04上跑通。
    展开

    作者回复: 666666

    
    
  • Liu Zheng
    2022-08-25 来自湖北
    想问一下,https://gitee.com/lmos/Geek-time-computer-foundation/blob/master/lesson12~13/main.c#L7-8 这里面func和sumdata分别都是什么呢?没有看到哪个地方有定义这两个东西,跑make或者vscode里面按F5也是会报错。

    作者回复: 故意 的 请详细读文稿

    
    
  • 🔥Burn
    2023-05-18 来自浙江
    archlinux,在编译qemu时报了编译错误,麻烦老师看看什么问题: lssh -lstdc++ -Wl,--end-group /usr/bin/ld: libcommon.fa.p/ebpf_ebpf_rss.c.o: in function `ebpf_rss_load': /home/burn/riscv-gnu-toolchain/qemu-6.2.0/build/../ebpf/ebpf_rss.c:52: undefined reference to `bpf_program__set_socket_filter' collect2: 错误:ld 返回 1 [1926/2548] Compiling C object libqemu-riscv64-linux-user.fa.p/target_riscv_vector_helper.c.o [1927/2548] Compiling C object libqemu-riscv64-linux-user.fa.p/target_riscv_translate.c.o [1928/2548] Compiling C object libqemu-riscv32-linux-user.fa.p/target_riscv_translate.c.o ninja: build stopped: subcommand failed. make: *** [Makefile:162:run-ninja] 错误 1
    展开
    
    