阿里云OSS对象存储上传文件(一)SDK安装

2023-11-02

因为实际项目需求,需要使用阿里云oss的对象存储来上传文件,在写代码操作之前,需要先安装SDK,编译你能使用的lib。
其实前后找了不少文章,但都不太细致,所以分享一下我本人使用的经验,不代表适用所有人,仅供参考。

环境是windows系统,vs2017+qt5.14(vs2015+qt5.6也尝试过,效果都一样)
请按照官方参考文档来配置:阿里云OSS C++安装

一、下载SDK
安装官方文档下载最新版的sdk包,将它解压到你电脑合适的位置。简单来说,包里有依赖的第三方dll,后面需要拷贝到我们程序的目录下。而我们需要的,是按照官方步骤,编译适合我们使用的lib文件。

二、cmake
环境下没有cmake的朋友可以先安装cmake,可以参考一下方法,亲测简单有效。
windows中cmake的安装和配置
按照第二种方法,下载源码和installer,安装文章所说的话进行配置就行了
cmake能正常用后,在第一步解压的sdk文件夹下,新建一个build文件夹,用来放后续生成的东西。
打开cmd,进入这个build文件夹,输入“cmake …”,即可在build下生成所需文件。

三、生成lib
build文件夹内生成了ALL_BUILD.vcxproj和INSTALL.vcxproj,安装官方文档,需要“以管理员身份运行VS开发人员命令提示符,运行以下命令”:

msbuild ALL_BUILD.vcxproj
msbuild INSTALL.vcxproj

前提是你安装了Visual Studio 2013及以上版本,成功后,lib目录下就会有alibabacloud-oss-cpp-sdk.lib
这里有一个问题,生成的lib是debug版本的,亲测release版本无法使用,会编译错误。如果需要release的,在msbuild的时候,要加对应的参数

msbuild ALL_BUILD.vcxproj /p:configuration=Release /t:Rebuild
msbuild INSTALL.vcxproj /p:configuration=Release /t:Rebuild

或者你不喜欢命令行编译也行,直接用vs打开build下的sln文件,切换到win32的release,编译ALL_BUILD.vcxproj就行了,效果一样。

这样,就能得到release版本的lib了

四、软件使用
(1)将源码的sdk目录拷贝到你的程序目录下(我改成了oss_sdk了,引用的时候需要注意)
(2)将源码的third_party目录拷贝到你的程序目录下,这里面主要也是lib和dll
(3)third_party目录下,选择你需要的dll,拷贝到程序运行目录下(我用的是32位,\third_party\lib\Win32,将里面的dll全部拷贝)
(4)引用库和头文件,这里我用的是qt的pro

#oss上传文件
INCLUDEPATH += $$PWD/oss_sdk/include \
               $$PWD/oss_sdk/src \
               $$PWD/third_party/include
win32:{
LIBS += -L$$PWD/third_party/lib/Win32 -llibcurl
LIBS += -L$$PWD/third_party/lib/Win32 -llibeay32
LIBS += -L$$PWD/third_party/lib/Win32 -lssleay32
LIBS += -L$$PWD/lib -lalibabacloud-oss-cpp-sdk

这样基本就完成了sdk的安装和配置了,下一篇将讲我封装的上传文件的代码调用。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

阿里云OSS对象存储上传文件(一)SDK安装 的相关文章

随机推荐

  • vue项目中使用可选链 ( ?. )和双问号 ( ??)详解

    1 安装插件 babel plugin proposal optional chaining npm install save dev babel plugin proposal optional chaining 2 配置babel ba
  • Hyperledger Fabric PHP SDK

    Hyperledger Fabric PHP SDK是社区提供的用于Hyperledger Fabric区块链应用开发的软件包 其目的在于为PHP应用提供访问Hyperledger Farbic区块链的能力 例如 创建通道 安装链码 访问链
  • Dockerfile构建python 运行项目运行环境

    https blog csdn net qq 24487005 article details 123380810 目录 构建思路 DockerFile脚本 环境文件解析 pip conf sources list openssl cnf
  • 55 openEuler搭建Mariadb数据库服务器-配置环境

    文章目录 55 openEuler搭建Mariadb数据库服务器 配置环境 55 1 关闭防火墙并取消开机自启动 55 2 修改SELINUX为disabled 55 3 创建组和用户 55 4 创建数据盘 55 4 1 方法一 在root
  • Linux下段错误信息的获取

    1 段错误是什么 一旦一个程序发生了越界访问 cpu 就会产生相应的保护 于是 段错误 segmentation fault 就出现了 所以段错误通常是指访问了不可访问的内存 2 产生段错误常见的原因 1 访问不存在的内存地址 2 访问系统
  • Arduino跨平台开发——TM1650数码管

    1 文件资料获取方式 博客文章链接 https blog yyzt site 856 html 2 开发环境搭建方式 关于如何搭建ArduinoIDE Platformio跨平台开发环境 请详看下面的文章 ArduinoIDE开发板安装 自
  • 12.14

    1 The movie is about to start 电影快开始了 2 what would you like to have 你要吃什么 3 I m going to buy some snacks 我去买点儿零食 snack sn
  • 利用keras自带影评数据集进行评价正面与否的二分类训练

    1 from keras datasets import imdb 2 from keras import layers 3 from keras import models 4 from keras import optimizers 5
  • 王学丹 确定测试原始需求

  • g2plot 水滴图,包含数据更新时渲染问题

    官网地址 https g2plot antv vision zh docs manual introduction 第一步 vue安装对应插件 网上很多 可以百度一下 npm install antv g2plot save 第二步 引入
  • Class.forName用法(详解)

    主要功能 Class forName xxx xx xx 返回的是一个类 Class forName xxx xx xx 的作用是要求JVM查找并加载指定的类 也就是说JVM会执行该类的静态代码段 下面 通过解答以下三个问题的来详细讲解下C
  • Word embedding techniques

    Word embedding techniques Word embedding techniques are methods used to represent words in a numerical format such as a
  • 文件相关操作

    1 文件相关概念 1 1文件的概念 一个文件通常就是磁盘上一段命名的存储区 但是对于操作系统来说 文件就会更复杂一些 例如 一个大文件可以存储在一些分散的区段中 或者还会包含一些操作系统可以确定其文件类型的附加数据 但是这些是操作系统 而不
  • 安卓逆向(工具篇)

    安卓逆向 1 下载工具 1 apktool 可以反编译软件的布局文件 图片等资源 方便大家学习一些很好的布局 2 dex2jar 将apk反编译成java源码 classes dex转化成jar文件 3 jd gui 查看APK中class
  • java 微信开发图片发送,微信开发?Java上传Base64图片

    class java gt import org apache commons codec binary Base64 import org apache log4j LogManager import org apache log4j L
  • 2021-07-11 layer与tier的区别(英语)

    layer与tier的区别 英语 都是层的意思 但是两个词不太一样 layer指的是多层相同的东西 比如天冷的时候盖两层被 用layer tier指的是多层不同的东西 以某种目的叠加在一起 起到一定作用 比如人的消化系统有三个层次 咀嚼破碎
  • SpringCloud集成RocketMQ实现事务消息方案

    前边的话 当前SpringCloud作为微服务开发的首选开源方案提供了完善的微服务开发技术套件 不过针对分布式领域的难题 分布式事务控制并没有成熟的方案 本篇将介绍作为柔性事务控制的优秀方案RocketMQ的使用原理和方法 通过本案例的学习
  • 升级你的GitHub终端认证方式:从密码到令牌

    升级你的GitHub终端认证方式 从密码到令牌 前言 GitHub官方在2021年8月14日进行了一次重大改变 它将终端推送代码时所需的身份认证方式从密码验证升级为使用个人访问令牌 Personal Access Token 这个改变引起了
  • 三角剖分算法(delaunay)

    开篇 在做一个Low Poly的课题 而这种低多边形的成像效果在现在设计中越来越被喜欢 其中的低多边形都是由三角形组成的 而如何自动生成这些看起来很特殊的三角形 就是本章要讨论的内容 项目地址 https github com zhiyis
  • 阿里云OSS对象存储上传文件(一)SDK安装

    因为实际项目需求 需要使用阿里云oss的对象存储来上传文件 在写代码操作之前 需要先安装SDK 编译你能使用的lib 其实前后找了不少文章 但都不太细致 所以分享一下我本人使用的经验 不代表适用所有人 仅供参考 环境是windows系统 v