在进行嵌入式软件开发时,需要对其中一个ncnn-src开源代码进行交叉编译,我使用的是riscv32-unknown-elf,但在编译时发现程序中引用的pthread库能正常引用,但是pthread_mutex_init等函数时却出现了未声明的错误:
以下是我的CMakeList
set(CMAKE_SYSTEM_NAME Generic)
set(CMAKE_SYSTEM_PROCESSOR riscv32)
set(CMAKE_C_COMPILER "/opt/riscv/bin/riscv32-unknown-elf-gcc")
set(CMAKE_CXX_COMPILER "/opt/riscv/bin/riscv32-unknown-elf-g++")
set(ARM_SYSROOT "/opt/riscv/riscv32-unknown-elf")
set(CMAKE_FIND_ROOT_PATH "${ARM_SYSROOT}")
set(CMAKE_FIND_ROOT_PATH_MODE_PROGRAM NEVER)
set(CMAKE_FIND_ROOT_PATH_MODE_LIBRARY ONLY)
set(CMAKE_FIND_ROOT_PATH_MODE_INCLUDE ONLY)
set(CMAKE_FIND_ROOT_PATH_MODE_PACKAGE ONLY)
set(CMAKE_CXX_FLAGS "-g -Wall -march=rv32g --sysroot=${ARM_SYSROOT}")
set(CMAKE_CXX_LINK_FLAGS "--sysroot=${ARM_SYSROOT}")
set(CMAKE_C_FLAGS "-g -Wall -march=rv32g --sysroot=${ARM_SYSROOT}")
set(CMAKE_C_LINK_FLAGS "--sysroot=${ARM_SYSROOT}")
set(CMAKE_BUILD_TYPE Debug)
cmake过程:
同时,我也尝试在芯来的开发平台Nuclei Studio进行编译,出现了同样的错误
请问如何解决上述pthread库的问题呢,我的开发板是riscv32的