dzj1418626018 2023-07-10 14:34 采纳率: 75%
浏览 63
已结题

riscv32交叉编译的pthread库问题

在进行嵌入式软件开发时,需要对其中一个ncnn-src开源代码进行交叉编译,我使用的是riscv32-unknown-elf,但在编译时发现程序中引用的pthread库能正常引用,但是pthread_mutex_init等函数时却出现了未声明的错误:

img

以下是我的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过程:

img

同时,我也尝试在芯来的开发平台Nuclei Studio进行编译,出现了同样的错误

请问如何解决上述pthread库的问题呢,我的开发板是riscv32的

  • 写回答

6条回答 默认 最新

  • 技术宅program 2023-07-10 15:17
    关注

    默认的 riscv32-unknown-elf 工具链并不包含 pthread 库,所以函数不能用了

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(5条)

报告相同问题?

问题事件

  • 系统已结题 7月24日
  • 已采纳回答 7月16日
  • 创建了问题 7月10日

悬赏问题

  • ¥15 35114 SVAC视频验签的问题
  • ¥15 impedancepy
  • ¥15 在虚拟机环境下完成以下,要求截图!
  • ¥15 求往届大挑得奖作品(ppt…)
  • ¥15 如何在vue.config.js中读取到public文件夹下window.APP_CONFIG.API_BASE_URL的值
  • ¥50 浦育平台scratch图形化编程
  • ¥20 求这个的原理图 只要原理图
  • ¥15 vue2项目中,如何配置环境,可以在打完包之后修改请求的服务器地址
  • ¥20 微信的店铺小程序如何修改背景图
  • ¥15 UE5.1局部变量对蓝图不可见