CMake 4.2.3 failed to build MaixPy-v1

Viewed 45

问题描述


尝试编译 https://github.com/sipeed/MaixPy-v1,手动安装的 up-to-date 的 CMake 4.2.3,每次都编译出错。

[ 98%] Built target micropython
[ 99%] Building CXX object main/CMakeFiles/main.dir/src/main.cpp.o
[ 99%] Linking CXX static library libmain.a
[ 99%] Built target main
[ 99%] Building C object CMakeFiles/maixpy.dir/exe_src.c.o
[100%] Linking CXX executable maixpy
/opt/toolchains/kendryte/kendryte-toolchain/lib/gcc/riscv64-unknown-elf/8.2.0/../../../../riscv64-unknown-elf/bin/ld: kendryte_sdk/libkendryte_sdk.a(entry_user.c.o): in function .L0 ': entry_user.c:(.text._init_bsp+0xa): undefined reference to _bss'
/opt/toolchains/kendryte/kendryte-toolchain/lib/gcc/riscv64-unknown-elf/8.2.0/../../../../riscv64-unknown-elf/bin/ld: entry_user.c:(.text._init_bsp+0x12): undefined reference to _ebss' /opt/toolchains/kendryte/kendryte-toolchain/lib/gcc/riscv64-unknown-elf/8.2.0/../../../../riscv64-unknown-elf/bin/ld: entry_user.c:(.text._init_bsp+0x8a): undefined reference to main'
/opt/toolchains/kendryte/kendryte-toolchain/lib/gcc/riscv64-unknown-elf/8.2.0/../../../../riscv64-unknown-elf/bin/ld: kendryte_sdk/libkendryte_sdk.a(syscalls.c.o): in function .L0 ': syscalls.c:(.text.sys_brk+0x6): undefined reference to _heap_end'
/opt/toolchains/kendryte/kendryte-toolchain/lib/gcc/riscv64-unknown-elf/8.2.0/../../../../riscv64-unknown-elf/bin/ld: syscalls.c:(.text.sys_brk+0x70): undefined reference to _heap_start' /opt/toolchains/kendryte/kendryte-toolchain/lib/gcc/riscv64-unknown-elf/8.2.0/../../../../riscv64-unknown-elf/bin/ld: kendryte_sdk/libkendryte_sdk.a(syscalls.c.o): in function .LANCHOR8':
syscalls.c:(.sdata._heap_cur+0x0): undefined reference to _heap_start' /opt/toolchains/kendryte/kendryte-toolchain/lib/gcc/riscv64-unknown-elf/8.2.0/../../../../riscv64-unknown-elf/bin/ld: kendryte_sdk/libkendryte_sdk.a(syscalls.c.o): in function .LANCHOR6':
syscalls.c:(.sdata._heap_line+0x0): undefined reference to _heap_start' /opt/toolchains/kendryte/kendryte-toolchain/lib/gcc/riscv64-unknown-elf/8.2.0/../../../../riscv64-unknown-elf/bin/ld: kendryte_sdk/libkendryte_sdk.a(syscalls.c.o): in function .LANCHOR7':
syscalls.c:(.sdata._ioheap_line+0x0): undefined reference to _heap_end' /opt/toolchains/kendryte/kendryte-toolchain/lib/gcc/riscv64-unknown-elf/8.2.0/../../../../riscv64-unknown-elf/bin/ld: kendryte_sdk/libkendryte_sdk.a(tasks.c.o): in function prvDeleteTCB':
tasks.c:(.text.prvDeleteTCB+0x8): undefined reference to vPortCleanUpTCB' /opt/toolchains/kendryte/kendryte-toolchain/lib/gcc/riscv64-unknown-elf/8.2.0/../../../../riscv64-unknown-elf/bin/ld: /opt/toolchains/kendryte/kendryte-toolchain/lib/gcc/riscv64-unknown-elf/8.2.0/../../../../riscv64-unknown-elf/lib/libc.a(lib_a-vfprintf.o): in function _vfprintf_r':
vfprintf.c:(.text._vfprintf_r+0x62): undefined reference to pthread_setcancelstate' /opt/toolchains/kendryte/kendryte-toolchain/lib/gcc/riscv64-unknown-elf/8.2.0/../../../../riscv64-unknown-elf/bin/ld: vfprintf.c:(.text._vfprintf_r+0xda): undefined reference to pthread_setcancelstate'
/opt/toolchains/kendryte/kendryte-toolchain/lib/gcc/riscv64-unknown-elf/8.2.0/../../../../riscv64-unknown-elf/bin/ld: vfprintf.c:(.text._vfprintf_r+0x118): undefined reference to pthread_setcancelstate' /opt/toolchains/kendryte/kendryte-toolchain/lib/gcc/riscv64-unknown-elf/8.2.0/../../../../riscv64-unknown-elf/bin/ld: vfprintf.c:(.text._vfprintf_r+0x6ec): undefined reference to pthread_setcancelstate'
/opt/toolchains/kendryte/kendryte-toolchain/lib/gcc/riscv64-unknown-elf/8.2.0/../../../../riscv64-unknown-elf/bin/ld: /opt/toolchains/kendryte/kendryte-toolchain/lib/gcc/riscv64-unknown-elf/8.2.0/../../../../riscv64-unknown-elf/lib/libc.a(lib_a-fflush.o): in function .L47': fflush.c:(.text._fflush_r+0x24): undefined reference to pthread_setcancelstate'
/opt/toolchains/kendryte/kendryte-toolchain/lib/gcc/riscv64-unknown-elf/8.2.0/../../../../riscv64-unknown-elf/bin/ld: /opt/toolchains/kendryte/kendryte-toolchain/lib/gcc/riscv64-unknown-elf/8.2.0/../../../../riscv64-unknown-elf/lib/libc.a(lib_a-fflush.o):fflush.c:(.text._fflush_r+0x6e): more undefined references to `pthread_setcancelstate' follow
collect2: error: ld returned 1 exit status
make[2]: *** [CMakeFiles/maixpy.dir/build.make:115: maixpy] Error 1
make[1]: *** [CMakeFiles/Makefile2:294: CMakeFiles/maixpy.dir/all] Error 2
make: *** [Makefile:91: all] Error 2
➜ maixpy_k210 git:(master) ✗

啥也不动,只是换一个 CMake 3.28 from Ubuntu 24.04 repo,则可以一次性编译通过。

实在有点令人匪夷所思呀!!!

复现步骤


把 Ubuntu 24.04 default CMake from repo 换成手动编译安装的最新版 CMake 4.2.3,立即复现。

硬件板卡


MaixPy-v1

其他信息


直接 git clone https://github.com/sipeed/MaixPy-v1

1 Answers

你好,这个仓库目前应该是没有继续维护的,建议使用旧版本的cmake和操作系统~