Qt接入阿里云SDK,OSS工程,实现头像上传,Mac和Win编译库文件。

目录

Qt接入OSS 

前言

1. Mac版

1.1 Mac所需前提条件

1.2 安装阿里SDK

1.3 导入库文件

2. Windows版

2.1 Win所需前提条件

2.2 安装阿里SDK

2.3 导入库文件


前言

Qt项目接入阿里云SDK,实现头像图片上传功能。分别编译Mac和Windows平台,对应C++版本SDK。

首先要到官网下载SDK安装包。另外还需要有OSS的AccessKeyId,AccessKeySecret,BucketName,Endpoint,本文不做赘述。

1. Mac版

1.1 Mac所需前提条件

1.1.1 安装OpenSSL,下载地址,我使用的版本是openssl-1.1.1h

 

1.1.2 安装openssl需要安装CMake, 下载地址,我使用的版本是 3.19.0-rc3。如果你的Qt已经下载过CMake,次步骤略过

 

1.1.3 配置CMake环境变量

打开终端,用命令行就可以配置,步骤如下:

vi .bash_profile

source .zshrc

source .zshrc 是立即执行bash_profile。苹果发布macOS 10.15 后,macOS的默认终端从bash变成了zsh。

 

1.1.4 安装OpenSSL

在解压目录下,执行(使用sudo是因为要prefix的访问权限 ;指定 prefix是因为此目录以后使用比较方便)

sudo ./config --prefix=/usr/local/openssl

执行make 

make

查看版本

openssl version

OpenSSL 1.1.1h  22 Sep 2020  这表示安装正确

 

1.2 安装阿里SDK

进入sdk压缩包解压文件夹,配置openssl环境变量

 
  1. cmake -DOPENSSL_ROOT_DIR=/usr/local//openssl \

  2. -DOPENSSL_LIBRARIES=/usr/local/openssl/lib \

  3. -DOPENSSL_INCLUDE_DIRS=/usr/local/openssl/include/

也可以通过修改 CMakeCache.txt 实现

如果只需要动态库,上传图片功能,可以通过配置编译选项裁剪代码:

 
  1. cmake

  2. -DBUILD_SHARED_LIBS=ON

  3. -DOSS_DISABLE_BUCKET=ON

  4. -DOSS_DISABLE_LIVECHANNEL=ON

  5. -DOSS_DISABLE_RESUAMABLE=ON

  6. -DOSS_DISABLE_ENCRYPTION=ON

贴一个全命令

 
  1. cmake -DOPENSSL_ROOT_DIR=/usr/local//openssl \

  2. -DOPENSSL_LIBRARIES=/usr/local/openssl/lib \

  3. -DOPENSSL_INCLUDE_DIRS=/usr/local/openssl/include/ \

  4. -DBUILD_SHARED_LIBS=ON \

  5. -DOSS_DISABLE_BUCKET=ON \

  6. -DOSS_DISABLE_LIVECHANNEL=ON \

  7. -DOSS_DISABLE_RESUAMABLE=ON \

  8. -DOSS_DISABLE_ENCRYPTION=ON

 

最后的.. 命令是执行的命令。

make

然后到/usr/local/openssl 路径下 复制 lib文件和include文件。因为静态库和动态库都有,只导入动态库即可。静态库文件尺寸相对大一点。

将动态库和头文件都复制到Qt工程路径下

 

1.3 导入库文件

在Qt 项目 .pro 文件中加入 库文件路径

 
  1. # alibabacloud sdk

  2. macx: LIBS += -L$$PWD/./ -lalibabacloud-oss-cpp-sdk

  3. # openssl lib

  4. macx: LIBS += -L$$PWD/./ -lssl.1.1

  5. macx: LIBS += -L$$PWD/./ -lcrypto.1.1

  6. INCLUDEPATH += $$PWD/.

  7. DEPENDPATH += $$PWD/.

Mac版SDK接入完毕。

 

2. Windows版

2.1 Win所需前提条件

2.1.1 安装Visual Studio 2013以上版本。我使用的是2019版本。

2.1.2 打开VS开发者工具,查看cmake工具

cmake -version

2.2 安装阿里SDK

打开阿里云sdk安装包解压路径,创建build文件夹。

cmake -DBUILD_SHARED_LIBS=ON -DOSS_DISABLE_BUCKET=ON -DOSS_DISABLE_LIVECHANNEL=ON -DOSS_DISABLE_RESUAMABLE=ON -DOSS_DISABLE_ENCRYPTION=ON -A Win32 ..

 -A Win32 是编译32位系统工程。

这些配置也可以在CMakeLists.txt中修改

 
  1. #Options

  2. option(BUILD_SHARED_LIBS "Enable shared library" ON)

  3. option(BUILD_SAMPLE "Build sample" OFF)

  4. option(BUILD_TESTS "Build unit and perfermence tests" OFF)

  5. option(ENABLE_COVERAGE "Flag to enable/disable building code with -fprofile-arcs and -ftest-coverage. Gcc only" OFF)

  6. option(ENABLE_RTTI "Flag to enable/disable building code with RTTI information" ON)

  7. option(OSS_DISABLE_BUCKET "" ON)

  8. option(OSS_DISABLE_LIVECHANNEL "" ON)

  9. option(OSS_DISABLE_RESUAMABLE "" ON)

  10. option(OSS_DISABLE_ENCRYPTION "" ON)

在build路径下,打开.sln 工程。  分别编译Debug版本和Release版本。编译完成之后,在Debug和Releasse下生成库文件

这里我手动把Debug路径下的lib和dll文件名字加了一个d,为了和Release版本库文件做区别。

 

2.3 导入库文件

 
  1. # alibabaCloud SDK

  2. win32:CONFIG(release, debug|release): LIBS += -L$$PWD/./ -lalibabacloud-oss-cpp-sdk

  3. else:win32:CONFIG(debug, debug|release): LIBS += -L$$PWD/./ -lalibabacloud-oss-cpp-sdkd

  4.  
  5.  
  6. win32: LIBS += -L$$PWD/./ -llibcurl

  7. win32: LIBS += -L$$PWD/./ -llibeay32

  8. win32: LIBS += -L$$PWD/./ -lssleay32

最后把第三方库文件和头文件都引入到Qt工程中。third_party 

最后补充一点,我的windows工程,用的是static静态库文件。因为动态dll文件报错。最后导入静态库,才可以正常使用。

评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值