Windows下编译使用Aliyun OSS C SDK

简介: 本文以VS2008、VS2010、VS2012、VS2013、VS2015为例说明编译OSS C SDK、运行示例程序的方法及常见问题。
+关注继续查看

Visual Studio(VS)是win平台下,编译运行C/C++程序的首选。微软发布的VS主要版本如下表:

名称 内部版本 发布日期 支持.NET Framework版本
Visual Studio 6.0 6.0 1998-06 -
Visual Studio .NET 2002 7.0 2002-02-13 1.0
Visual Studio .NET 2003 7.1 2003-04-24 1.1
Visual Studio 2005 8.0 2005-11-07 2.0 
Visual Studio 2008 9.0 2007-11-19 2.0、3.0、3.5 
Visual Studio 2010 10.0 2010-04-12 2.0、3.0、3.5、4.0 
Visual Studio 2012 RTM 11.0 2012-08-25 2.0、3.0、3.5、4.0、4.5
Visual Studio 2013 12.0 2013-10-17 2.0、3.0、3.5、4.0、4.5、4.5.1、4.5.2 
Visual Studio 2015 14.0 2014-11-10 2.0、3.0、3.5、4.0、4.5、4.5.1、4.5.3、4.5.5、4.6
Visual Studio 2015 RTM 14.0 2015-07-21 2.0、3.0、3.5、4.0、4.5、4.5.1、4.5.3、4.5.5、4.6、5.0、6.0 

本文以 VS2008、VS2010、VS2012、VS2013、VS2015 为例说明编译OSS C SDK、运行示例程序的方法。

编译Aliyun OSS C SDK

VS2008

1. 打开工程
选择oss_c_sdk_2008.sln右键打开方式中选择Microsoft Visual Studio 2008打开。
如果右键打开方式中没有Microsoft Visual Studio 2008,先打开Visual Studio 2008,在VS2008中打开工程,方法是 File-> Open -> Project/Solution 选择oss_c_sdk_2008.sln打开。

2. 设置启动工程
把工程oss_c_sdk_test设置为启动工程,方法在在oss_c_sdk_test右键选择Set as StartUp Project

3. 编译
在Solution Explorer中选择oss_c_sdk_test,右键选择Rebuild。编译出的OSS C SDK库,在工程目录下的

4. 可能出现的问题

  • 错误: error LNK2019: unresolved external symbol _oss_create_live_channel referenced in function _create_test_live_channel
    原因: 新加的文件oss_live.c等没有加入工程

解法: oss_c_sdk右键选择Add -> Existing Item...,选择oss_c_sdk目录下的所有.h、.c文件,加入工程oss_c_sdk

  • 错误: error LNK2019: unresolved external symbol __imp__inet_addr@4 referenced in function _is_valid_ip
    原因: oss_c_sdk_test中缺少库ws2_32.lib

解法: oss_c_sdk_test右键选择Properties -> Configuration Properties -> Linker -> Input -> Additional Dependencies中加入ws2_32.lib

  • 错误: fatal error C1083: Cannot open include file: 'stdint.h': No such file or directory
    原因: 缺少头文件stdint.h

解法: third_party/include里的stdint.h.bak修改成stdint.h

5. 库位置
编译出来的OSS C SDK库,在工程目录的Debug/Release里,即oss_c_sdk.lib。

VS2010

1. 打开工程
选择oss_c_sdk.sln右键打开方式中选择Microsoft Visual Studio 2010打开。

2. 设置启动工程
把工程oss_c_sdk_test设置为启动工程,方法在在oss_c_sdk_test右键选择Set as StartUp Project

3. 编译
在Solution Explorer中选择oss_c_sdk_test,右键选择Rebuild。编译出的OSS C SDK库,在工程目录下的

4. 可能出现的问题

  • 错误: error MSB8008: Specified platform toolset (v140) is not installed or invalid. Please make sure that a supported PlatformToolset value is selected.
    原因: PlatformToolset值与当前VS版本不符

解法: 按照如下路径 Solution Explorer -> oss_c_sdk -> Properties -> Configuration Properties -> Platform Toolset,修改V140V100

5. 库位置
编译出来的OSS C SDK库,在工程目录的Debug/Release里,即oss_c_sdk.lib。

VS2012

1. 打开工程
选择oss_c_sdk.sln右键打开方式中选择Microsoft Visual Studio 2012打开。

2. 设置启动工程
把工程oss_c_sdk_test设置为启动工程,方法在在oss_c_sdk_test右键选择Set as StartUp Project

3. 编译
在Solution Explorer中选择oss_c_sdk_test,右键选择Rebuild。编译出的OSS C SDK库,在工程目录下的

4. 可能出现的问题

  • 错误: error MSB8020: The builds tools for v140 (Platform Toolset = 'v140') cannot be found. To build using the v140 build tools, either click the Project menu or right-click the solution, and then select "Update VC++ Projects...". Install v140 to build using the v140 build tools.
    原因: PlatformToolset值与当前VS版本不符

解法: 按照如下路径 Solution Explorer -> oss_c_sdk -> Properties -> Configuration Properties -> Platform Toolset,修改V140为Visual Studio 2012 (v110)

5. 库位置
编译出来的OSS C SDK库,在工程目录的Debug/Release里,即oss_c_sdk.lib。

VS2013/VS2015

VS2013/VS2015编译Aliyun OSS C SDK的方法完全相同,下面以VS2015为例说明。

1. 打开工程
选择oss_c_sdk.sln右键打开方式中选择Microsoft Visual Studio 2015/打开。

2. 设置启动工程
把工程oss_c_sdk_test设置为启动工程,方法在在oss_c_sdk_test右键选择Set as StartUp Project

3. 编译
在Solution Explorer中选择oss_c_sdk_test,右键选择Rebuild。编译出的OSS C SDK库,在工程目录下的

4. 库位置
编译出来的OSS C SDK库,在工程目录的Debug/Release里,即oss_c_sdk.lib。

运行示例程序

下载

有一下两种方式下载OSS C SDK示例程序aliyun-oss-c-sdk-sample:

运行

aliyun-oss-c-sdk-sample版本里,提供了VS2008、VS2010、VS2012、VS2013、VS2015的示例。

  • 替换oss_c_sdk.lib。在oss-c-sdk-sampleoss-c-sdklibRelease是OSS C SDK包oss_c_sdk.lib。该包是上一个发布版本的release包,您可以继续使用,也可以用您编译出来的版本替换。
  • 打开工程。根据您的Visual Studio版本,选择对应的工程。选择oss-c-sdk-sample.sln右键打开方式中选择对应VS打开工程。
  • 修改参数。修改main.c 中的OSS_ENDPOINT、ACCESS_KEY_ID、ACCESS_KEY_SECRET、BUCKET_NAME为您的实际参数。
  • 编译。在Solution Explorer中选择oss-c-sdk-sample,右键选择Rebuild。
  • 配置Environment。按照如下路径配置 Solution Explorer -> oss-c-sdk-sample -> Property -> Configuration Properties -> Debugging -> Environment 修改为 PATH=..\oss-c-sdk\lib\Release\;%PATH%
  • 运行。用Ctrl+F5执行示例程序。

揭秘Sample工程

OSS C SDK Sample工程是怎么做出来的呢?VS2008、VS2010、VS2012、VS2013、VS2015的做法基本相同,下面以VS2012为例说明。

  • 准备库和头文件。准备SDK库/头文件,第三方库/头文件。合并SDK库/头文件、第三方库/头文件,结果为oss-c-sdk-sampleoss-c-sdk目录。oss-c-sdk目录直接放在工程目录下。
  • 配置头文件路径。在路径 Solution Explorer -> oss-c-sdk-sample -> Property -> Configuration Properties -> VC++ Directories -> Include Directories,添加如下配置:
..\oss-c-sdk\include
..\oss-c-sdk\include\apr
..\oss-c-sdk\include\aprutil
..\oss-c-sdk\include\curl
..\oss-c-sdk\include\mxml
..\oss-c-sdk\include\sdk
  • 配置库路径。在路径 oss-c-sdk-sample -> Property -> Configuration Properties -> Linker -> General -> Additional Library Directories,添加 ..\oss-c-sdk\lib\Release
  • 配置库。在路径 oss-c-sdk-sample -> Property -> Configuration Properties -> Linker -> Input -> Additional Dependencies,添加如下配置:
libapr-1.lib
libaprutil-1.lib
curl.lib
mxml1.lib
oss_c_sdk.lib
ws2_32.lib

如果您想从一个空工程开始编写自己的程序,或者在已有的工程中使用OSS C SDK,请参考Sample工程的配置方法。

提示:

  • 目前OSS C SDK支持WIN32(x86),暂不支持x64;VS2015编译、运行的时候请选择x86,勿选择x64。
  • 您想更多了解OSS C SDK,请参看 帮助与文档
相关实践学习
借助OSS搭建在线教育视频课程分享网站
本教程介绍如何基于云服务器ECS和对象存储OSS,搭建一个在线教育视频课程分享网站。
目录
相关文章
|
2月前
|
开发工具 对象存储 Python
使用Python的SDK从OSS中下载指定日期的所有文件
使用Python的SDK从OSS中下载指定日期的所有文件
50 1
|
4月前
|
SQL 存储 监控
通过sdk查看oss投递(新版)延迟情况最佳实践
在投递任务中,日志服务会将运行日志写入到给定的logstore中,因而可以使用SDK来查看投递任务的当前状态,并进行批量查询,以了解多个Project和投递任务的状态。下面以查看oss投递的延迟为例,介绍客户提供操作步骤和常见的使用场景,以帮助客户更加方便地监控和管理投递任务。
通过sdk查看oss投递(新版)延迟情况最佳实践
|
6月前
|
开发工具 对象存储
阿里云OSS SDK上传文件报错:String contains non ISO-8859-1 code point
阿里云OSS SDK上传文件报错:String contains non ISO-8859-1 code point
166 0
|
Java 测试技术 开发工具
|
存储 SQL 缓存
访问 OSS 这类对象存储最快的方式- JindoFS SDK |学习笔记
快速学习 访问 OSS 这类对象存储最快的方式- JindoFS SDK
281 0
访问 OSS 这类对象存储最快的方式- JindoFS SDK |学习笔记
|
存储 缓存 分布式计算
数据湖实操讲解【OSS 访问加速】第五讲:访问 OSS 这类对象存储最快的方式 - JindoFS SDK
数据湖 JindoFS+OSS 实操干货 36讲 每周二16点准时直播!扫文章底部二维码入钉群,线上准时观看~ Github链接: https://github.com/aliyun/alibabacloud-jindofs
数据湖实操讲解【OSS 访问加速】第五讲:访问 OSS 这类对象存储最快的方式 - JindoFS SDK
|
JSON Java Go
产品百科 | 如何基于 OSS 原生 SDK 上传视频
视频点播提供了丰富的 上传方式包括客户端上传、服务端上传等,但可能缺乏需要的语言版本(如 Go 等),此时可以直接基于 OSS 原生 SDK 进行上传。
产品百科 | 如何基于 OSS 原生 SDK 上传视频
|
SQL 存储 分布式计算
重磅:阿里云 JindoFS SDK 全面开放使用,OSS 文件各项操作性能得到大幅提升
本文主要介绍如何使用JindoFS SDK来访问OSS对象存储,以及使用它来提升我们操作OSS文件的性能。值得一提的是,此前JindoFS SDK 仅限于E-MapReduce产品内部使用,此次全方位面向整个阿里云OSS用户放开,并提供官方维护和支持技术,欢迎广大用户集成和使用。
重磅:阿里云 JindoFS SDK 全面开放使用,OSS 文件各项操作性能得到大幅提升
|
网络安全 开发工具 对象存储
OSS 的C++ SDK编译安装指南
OSS 的C++ SDK编译安装指南
OSS 的C++ SDK编译安装指南
|
XML Ubuntu 网络协议
OSS Python SDK
很多 oss 使用者在使用 Python SDK 时出现很多问题,不确定是否影响使用,有的安装失败环境有问题,今天说下遇到的几个案例 官方安装 pip install oss2 版本最好是 2.7.5 或以上 oss2 依赖 如果要开启 crc64 循环冗余校验,需要先将 crcmod 安装好。
OSS Python SDK
相关产品
对象存储
推荐文章
更多