Windows下编译使用Aliyun 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 impinet_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:

  • OSS官网下载:OSS C SDK安装 ;
  • GitHub下载:GitHub

运行

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

  • 替换oss_c_sdk.lib。在oss-c-sdk-sample\oss-c-sdk\lib\Release是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-sample\oss-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,请参看 帮助与文档 。
时间: 2024-09-20 16:54:18

Windows下编译使用Aliyun OSS C SDK的相关文章

Windows下编译使用Aliyun OSS PHP SDK

安装环境:Win7 64 + PHP 5.6 + OSS PHP SDK 2.0.6 安装PHP 1. 下载安装包.打开 http://windows.php.net/download/ ,从PHP 5.6 (5.6.22) -> VC11 x64 Thread Safe (2016-May-26 18:22:23) -> zip下载PHP安装包,下载到本地后的文件是php-5.6.22-Win32-VC11-x64.zip. 提示: 如果您的机器是32位,下载时请选择VC11 x86 Thr

Aliyun OSS Java SDK超时时间设置

Aliyun OSS Java SDK发送一个请求,有5个阶段: 阶段Ⅰ 从连接池中获取连接,如果使用的连接已经达到最大连接数,则等待直到有连接释放,或达到最大超时时间,抛出异常ConnectionPoolTimeoutException.如果设置了比较大最大连接数,但是并不想让连接池中真正占用很多连接,SDK会自动关闭闲置时间较长的连接. 最大连接数默认1024个,使用ClientConfiguration.setMaxConnections设置. 从连接池中获取默认不超时,可以通过Clien

在Windows下编译WebRTC

前言 这篇文章的目的在于为你节省生命中宝贵的10小时(甚至更多),或者浪费你10分钟.作为Google更新频繁的大型跨平台基础库,WebRTC的编译一直被人称为噩梦.如果恰巧你偏要在Windows下编译WebRTC,那么你最好提前对自己的耐心做充分的评估. 截止目前,我尝试过中文博客社区里几乎所有的文章,可以说全部失效了.我不知道这篇文章的有效期有多久,因为webrtc.org社区的家伙们更新实在太勤奋了! 环境  OS:Microsoft Windows 7 Ultimate 6.1.7601

skia 编译-windows下编译skia图形库出错

问题描述 windows下编译skia图形库出错 首先用在window下安装了cygwin 并且安装了python 用winch python测试python是否成功 也ok了,然后安装了vs2010, 在cygwin中输入指令 Python gyp_skia 报错 $ Python gyp_skia Traceback (most recent call last): File "gyp_skia", line 29, in import gyp ImportError: No mo

c++-关于CuraEngine在windows下编译问题

问题描述 关于CuraEngine在windows下编译问题 大神求助,最近在研究CuraEngine,但是在windows下怎么也编译不通过,在编译Arcus的时候工程就编译不用过 有没有遇到过这样情况的,一起研究研究啊,谢谢啊 解决方案 什么编译错误,你需要根据具体错误来解决,可能是环境配置不正确等 解决方案二: 现在在配制Arcus时,编译报错 解决方案三: http://blog.csdn.net/fhln609353626/article/details/48007755 解决方案四:

ndk在windows下编译问题

问题描述 ndk在windows下编译问题 现在的ndk已经自带编译环境,可以直接执行ndk-build.cmd进行编译.但是遇到一个问题, 在编译时识别到相对路径时不会转换,如下图: 相对路径变得那么长,以至于超过了windows的最大文件长度, 求解决方法 解决方案 没人能知道了吧,为啥我提的问题基本没有人知道 解决方案二: NDK在windows下编译libpngwindows下使用ndk编译protobufwindows下使用ndk9编译ffmpeg

《C程序设计新思维》一1.2 在Windows下编译C

1.2 在Windows下编译C 在多数系统中,C享有一个中心的.贵宾礼遇的地位,以至于所有其他工具都处于从属的地位:但是在Windows机器中,C语言却被奇怪地忽略了. 所以我不得不花点时间讨论如何来准备好一台Windows机器以便用来写C程序.如果你现在不需要在Windows机器上编程,你可以直接跳到"1.3库的路径". 这并非是针对Microsoft的,请不要用这样的角度来理解这一节.我无意去推测Microsoft的动机和商业战略.不过,如果你想在Windows机器上用C来工作,

新手求解答,如何在Windows下编译Audacity?

问题描述 新手求解答,如何在Windows下编译Audacity? 希望大神给出详细步骤.希望可以更改Audacity的代码并观看效果. 解决方案 楼主,Audacity是一个音频处理软件吧?你是要调他的功能还是做个类似的? 解决方案二: 新手求解答数据库连接(新手求解答)

在Windows下编译FFmpeg详细说明

MinGW:一个可自由使用和自由发布的Windows特定头文件和使用GNC工具集导入库的集合,允许你生成本地的Windows程序而不需要第三方C运行时   MinGW,即 Minimalist GNU For Windows.它是一些头文件和端口库的集合,该集合允许人们在没有第三方动态链接库的情况下使用 GCC产生 Windows32 程序.   开发 MinGW 是为了那些不喜欢工作在 Linux(FreeBSD) 操作系统而留在 Windows 的人提供一套符合 GNU 的 GNU 工作环境