Aws
amazon (S3) 是一个公开的服务,Web 应用程序开发人员可以使用它存储数字资产,包括图片、视频、音乐和文档。 S3 提供一个 RESTful API 以编程方式实现与该服务的交互.
MinIO是兼容AWS SDK,所以可以通过aws访问minio文件系统。
指导文档:https://docs.aws.amazon.com/sdk-for-cpp/v1/developer-guide/getting-started.html
Aws安装
Windows系统
vcpkg install aws-sdk-cpp 命令行在线安装
需要先安装vcpkg,参看https://blog.youkuaiyun.com/baidu_16370559/article/details/140697821?spm=1001.2014.3001.5501
在powershell输入下面命令
vcpkg search aws-sdk-cpp
vcpkg install aws-sdk-cpp[s3]:x64-windows
报错,不能通过
源码安装:
参看https://docs.aws.amazon.com/zh_cn/sdk-for-cpp/v1/developer-guide/setup-windows.html
前提要求:
Install CMake (minimum version 3.13) ,可以在powershell 输入cmake --version 查看版本,这里cmake 的版本是
- 源码下载:GitHub - aws/aws-sdk-cpp: AWS SDK for C++ 有2种办法
- 直接从git下载zip文件
这里下载的版本是aws-sdk-cpp-1.11.370.zip. ctr/aws-crt-cpp目录为空,需要手动从git下载.
使用的aws-crt-cpp版本是v0.27.4,此时aws-crt-cpp目录的ctr目录下的各个文件夹也是空的。需要手动下载ctr目录下各文件夹的源码
- 在powershell通过git下装
前提条件是:安装git
在powershell 输入 git clone --recurse-submodules GitHub - aws/aws-sdk-cpp: AWS SDK for C++ 这样通过git下载。这种办法只能下载main分支的代码。
这种办法不一定会把所有的文件都下载,也可能需要手动下载依赖库。
- mkdir sdk_build cd sdk_build
- Generate build files
cmake ..\aws-sdk-cpp-1.11.370 -DCMAKE_BUILD_TYPE=Release -DBUILD_ONLY="s3" -DCMAKE_PREFIX_PATH="E:\code\aws\aws\aws-sdk-cpp-1.11.370\install" -DENABLE_TESTING=OFF
- cmake --build --config=Debug
- cmake --install --config=Debug
注意:步骤3过程中,使用powershell编译出错.改成cmake-gui进行编译。
ALL_BUILD右键,生成
单击INSTALL,右键,仅用于项目,仅生成INSTALL
Windows系统使用aws
VS2019
直接使用aws,编译测试demo会报错。
解决方法
官方文档有说到,要添加USE_IMPORT_EXPORT和
USE_WINDOWS_DLL_SEMANTICS两个宏,所以这个问题是符号导出的问题
QT
解决办法:
在pro文件加上预定义
DEFINES +=USE_IMPORT_EXPORT
DEFINES +=USE_WINDOWS_DLL_SEMANTICS