目录
1 前言
2 第一次编译
3 第二次编译
3.1 安装配置vcpkg
3.2 升级PowerShell
3.3 升级Cmake版本
3.4 vcpkg编译aws-sdk-cpp
4 工具合集下载
5 参考文献
1 前言
在做图片、视频片段存储技术调研时,从查阅的大量资料中,了解到很多人推荐的开源MinIO,其优点简单来说易于部署和调用,支持高可靠性等,但是官方却没提供C++版本的API接口,这点对C++开发人员不友好。好在它是遵循亚马逊S3协议的,所以可以通过调用aws-sdk-cpp对MinIO访问。下边记录了笔者编译aws-sdk-cpp碰到的一些坑以及解决办法,供有需要的朋友参考,以少走弯路。
2 第一次编译
从github上下载代码GitHub - aws/aws-sdk-cpp: AWS SDK for C++,命令:
git clone --recurse-submodules https://github.com/aws/aws-sdk-cpp
因为github服务器在国外,下载过程速度超级慢,重复下载了多次后,终于下载完代码。笔者电脑上已安装了CMake (cmake-gui3.18)和VS2022,于是打开cmake编译aws-sdk-cpp,但是横竖编译不过,看到网上有的朋友介绍cmake编译时,一句介绍就结束了,真羡慕这是怎么编译出来的,都有些怀疑自己了。
3 第二次编译
山重水复疑无路之时,在一个网友的博文里,看到类似的经历,使用CMAKE+VS的方式编译aws-sdk-cpp无果,后来改用C++第三方库管理工具vcpkg,顺利完成了编译。于是开启了笔者的二次编译之旅。
3.1 安装配置vcpkg
下载传送门:GitHub - microsoft/vcpkg: C++ Library Manager for Windows, Linux, and MacOS
git clone https://github.com/microsoft/vcpkg
由于网速的原因,同样下载很慢。下载完之后,编译下载vcpkg。网友强烈推荐使用PowerShell进行编译。命令:
./bootstrap-vcpkg.bat
查找原因,说是要使用PowerShell7以上的版本,输入以下命令查看:
$PSVersionTable
果然系统自带的版本比较低。
3.2 升级PowerShell
下载传送门(最新版):Release v7.4.0-preview.3 Release of PowerShell · PowerShell/PowerShell · GitHub
安装后,将路径添加到系统环境变量,再次查看powershell版本:
接着编译vcpkg,生成vcpkg.exe文件:
将vcpkg.exe的当前路径,添加到系统环境变量,这样就可以在powershell中任意路径,使用vcpkg了。
3.3 升级Cmake版本
使用vcpkg先查看一下aws-sdk-cpp概况,命令:
vcpkg search aws-sdk-cpp
提示Cmake版本太低,需要升级版本:
下载传送门:Download | CMake
将Cmake从3.18升级到3.26.3后即可。
3.4 vcpkg编译aws-sdk-cpp
接着用命令vcpkg search aws-sdk-cpp查看:
内容比较多,我们需要的是红线框中的。输入以下命令开始编译:
vcpkg install aws-sdk-cpp[core]:x86-windows
vcpkg install aws-sdk-cpp[core]:x64-windows
如果编译过程中因网络问题出错,不用理会,反复使用编译命令进行编译,直到成功为止。
在vcpkg当前目录下,会生成install目录,这个目录下已经生成了aws-sdk-cpp编译好的库文件及头文件,添加引用到项目工程,即可使用了。
4 工具合集下载
为了便于下载,笔者同时已将文中提到的中间工具及aws-cpp-sdk编译好的开发包文件,已上传到csdn,您也可以在这里进行下载
PowerShell-7.4.0-preview.3-win-x64.msi
vcpkg
aws-sdk-cpp-1.11.4(x64-windows)
5 参考文献
C++第三方库管理工具vcpkg使用教程
vcpkg+Visual Studio 2019编译aws-sdk-cpp 实现minIO文件上传下载
Visual Studio开源库集成器Vcpkg全教程--利用Vcpkg轻松集成开源第三方库