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快速上手——如何使用ossbrowser
本实验是对象存储OSS入门级实验。通过本实验,用户可学会如何用对象OSS的插件,进行简单的数据存、查、删等操作。
目录
相关文章
|
存储 人工智能 开发工具
AI助理化繁为简,速取代码参数——使用python SDK 处理OSS存储的图片
只需要通过向AI助理提问的方式输入您的需求,即可瞬间获得核心流程代码及参数,缩短学习路径、提升开发效率。
1994 5
AI助理化繁为简,速取代码参数——使用python SDK 处理OSS存储的图片
|
监控 机器人 Unix
GoLand——windows下如何编译Linux二进制文件
GoLand——windows下如何编译Linux二进制文件
348 1
GoLand——windows下如何编译Linux二进制文件
|
消息中间件 分布式计算 DataWorks
DataWorks产品使用合集之如何使用Python和阿里云SDK读取OSS中的文件
DataWorks作为一站式的数据开发与治理平台,提供了从数据采集、清洗、开发、调度、服务化、质量监控到安全管理的全套解决方案,帮助企业构建高效、规范、安全的大数据处理体系。以下是对DataWorks产品使用合集的概述,涵盖数据处理的各个环节。
|
存储 弹性计算 监控
建设云上稳定性问题之为什么要在云效平台创建发布流水线并将源代码编译环节替换为从OSS下载构建部署物
建设云上稳定性问题之为什么要在云效平台创建发布流水线并将源代码编译环节替换为从OSS下载构建部署物
427 2
|
并行计算 开发工具 异构计算
在Windows平台使用源码编译和安装PyTorch3D指定版本
【10月更文挑战第6天】在 Windows 平台上,编译和安装指定版本的 PyTorch3D 需要先安装 Python、Visual Studio Build Tools 和 CUDA(如有需要),然后通过 Git 获取源码。建议创建虚拟环境以隔离依赖,并使用 `pip` 安装所需库。最后,在源码目录下运行 `python setup.py install` 进行编译和安装。完成后即可在 Python 中导入 PyTorch3D 使用。
2040 0
|
安全 Go 开发工具
对象存储OSS产品常见问题之go语言SDK client 和 bucket 并发安全如何解决
对象存储OSS是基于互联网的数据存储服务模式,让用户可以安全、可靠地存储大量非结构化数据,如图片、音频、视频、文档等任意类型文件,并通过简单的基于HTTP/HTTPS协议的RESTful API接口进行访问和管理。本帖梳理了用户在实际使用中可能遇到的各种常见问题,涵盖了基础操作、性能优化、安全设置、费用管理、数据备份与恢复、跨区域同步、API接口调用等多个方面。
669 9
|
C++ Windows
Windows下编译64位CGAL
Windows下编译64位CGAL
760 0
|
编译器 Linux C语言
Windows下编译并使用64位GMP
Windows下编译并使用64位GMP
1274 0
|
计算机视觉 Windows
OpenCV + CLion在windows环境下使用CMake编译, 出现Mutex相关的错误的解决办法
OpenCV + CLion在windows环境下使用CMake编译, 出现Mutex相关的错误的解决办法
953 0
|
存储 缓存 对象存储
利用云存储网关在Windows上挂载OSS
概述 阿里云OSS提供了海量低成本高可靠的对象存储,非常适合于存储文件,图像,视频等非结构化数据,同时也提供了丰富的SDK生态给开发者集成使用。但是对于开发资源有限的小企业或者个人用户而言,直接使用OSS存储还是存在诸多不便。
11761 1
利用云存储网关在Windows上挂载OSS

热门文章

最新文章

相关产品

  • 对象存储