C++常见问题

本文介绍使用OSS C++ SDK的常见问题及解决方法。

上传文件报错“Request body is in fail state. Logical error on i/o operation.”

  • 错误原因

    在上传数据前,C++ SDK会调用iostream的bad()和fail()接口检查当前iostream对象实例的状态。如果状态不正确,则提示该错误。

  • 解决方法

    检查传入的iostream对象实例的状态。如果是通过fstream实例化的对象,请检查传入的文件路径是否正确。

使用Linux系统进行安装时,执行“./bootstrap”时报错

  • 报错信息:

    Error when bootstrapping CMake:

    Cannot find a C++ compiler that supports both C++11 and the specified C++ flags.

    Please specify one using environment variable CXX.。

  • 错误原因

    进行CMake安装前没有先安装gcc。

  • 解决方法

    先安装gcc后再执行安装。Linux系统安装gcc指令:

    yum -y install gcc

使用Linux系统进行安装执行“./bootstrap”指令时,自启动过程找不到OpenSSL

  • 报错信息:

    CMake Error at Utilities/cmcurl/CMakeLists.txt:525 (message):

    Could not find OpenSSL. Install an OpenSSL development package or

    configure CMake with -DCMAKE_USE_OPENSSL=OFF to build without OpenSSL.

  • 错误原因

    cmake安装需要依赖openssl,安装cmake时需要提前安装openssl-devel或者在预配置时通过-DCMAKE_USE_OPENSSL=OFF参数来跳过openssl依赖。

  • 解决方法

    方法一:先安装openssl后再执行安装。Linux系统安装gcc指令:

    yum -y install openssl-devel

    方法二:在预配置的时候通过指定参数来跳过openssl依赖

    ./configure ---DCMAKE_USE_OPENSSL=OFF && gmake && gmake install

C++ SDK中使用OpenSSL版本

OpenSSL是第三方库,更新较为频繁,不同用户基于各自项目特性和安全合规要求,对OpenSSL版本可能有不同需求。考虑到这一实际情况,OSS C++ SDK兼容OpenSSL 3.x版本。建议您根据自身项目的具体要求,灵活调整并使用相符的OpenSSL版本。

  • 在Linux环境下,C++ SDK能够自动检测系统已安装的OpenSSL版本。即您无需额外配置即可利用系统现有的OpenSSL环境进行开发,确保了灵活性和便利性。

  • 在Windows环境下,由于缺乏统一的OpenSSL安装标准和命令,C++ SDK预先集成了一个特定版本的OpenSSL,旨在简化配置过程,确保C++ SDK的快速构建与部署。