开发者社区 > 云存储 > 对象存储OSS > 正文

在使用 oss服务编译出现的error

使用oss,sdk源码编译,环境以及sdk版本如下
-- Project version: 1.9.0
-- TARGET_OS: LINUX
-- Configuring done
-- Generating done
编译过程出现
/usr/bin/ld: ../lib/libalibabacloud-oss-cpp-sdk.a(ResumableCopier.cc.o): undefined reference to symbol 'pthread_create@@GLIBC_2.17'
/usr/bin/ld: /lib/aarch64-linux-gnu/libpthread.so.0: error adding symbols: DSO missing from command line
collect2: error: ld returned 1 exit status
目前没有找到解决办法,不知道有没有人也遇到过

展开
收起
游客oojyfgotmr3hy 2023-10-09 12:32:06 140 0
2 条回答
写回答
取消 提交回答
  • 这个错误信息表明在你的系统中缺少一个名为"libpthread.so.0"的库文件,这是Linux系统中一个重要的线程库文件。可能是你的系统没有安装这个库,或者你的库文件版本与你正在使用的其他库文件不兼容。

    你可以尝试以下步骤来解决这个问题:

    1. 检查你的系统,确保你已经安装了"libpthread.so.0"库文件。如果没有,你可以使用你的系统的包管理器(例如,Ubuntu系统的apt,CentOS系统的yum)来安装这个库。

    2. 如果你已经安装了"libpthread.so.0"库文件,但是你的库文件版本与你正在使用的其他库文件不兼容,你可能需要更换一个版本的库文件。

    3. 如果你确定你的系统和库文件都没有问题,但是编译时仍然出现这个错误,你可能需要查看SDK的编译选项,确保所有必要的库文件和头文件都被正确地链接了。

    2023-10-09 13:55:31
    赞同 1 展开评论 打赏
  • 根据提供的编译错误信息,这个问题是由于链接器无法找到 pthread_create 函数导致的。pthread_create 是 POSIX 线程库中的函数,用于创建新线程。

    要解决这个问题,你可以尝试以下几个步骤:

    1. 确认环境配置:确保你的环境中已经正确安装了 libpthread 库。可以通过运行 ldconfig -p | grep libpthread 命令来检查库文件是否存在。如果没有安装,请使用适当的包管理工具(如apt、yum等)安装该库。

    2. 检查编译选项:确认在编译过程中是否正确指定了 -lpthread 链接选项,以便将 libpthread 库链接到可执行程序中。你可以检查相关的构建脚本或 Makefile 文件,确保链接选项正确设置。

    3. 检查 SDK 版本:确保你正在使用的 Alibaba Cloud OSS C++ SDK 版本与你的项目版本兼容。有时候,特定版本的 SDK 可能会有一些依赖性问题,可能需要升级或降级 SDK 版本来解决问题。

    4. 检查库路径:如果你手动编译 SDK 的源码,并将生成的库文件放置在非标准位置,可能需要通过 -L 选项指定正确的库路径。请确保库文件所在的路径已经包含在链接器的搜索路径中。

    2023-10-09 13:29:14
    赞同 展开评论 打赏

相关产品

  • 对象存储
  • 热门讨论

    热门文章

    相关电子书

    更多
    OSS运维进阶实战手册 立即下载
    《OSS运维基础实战手册》 立即下载
    OSS运维基础实战手册 立即下载