引言

每一个C++库的使用都是从开发环境的配置开始的,其实每个库的配置过程都是大同小异,总结下来有下面几个步骤:

  1. 下载库文件,这里假定是已经预先编译完成的。
  2. 配置库文件的包含目录(include)和库目录(lib)
  3. 配置库文件的动态链接库(dll),这一步是很多人容易忽略的。上面配置好包含目录和库目录,只是开发环境配置完成了,没有配置好dll,在使用该库的程序运行时,会造成操作系统无法加载库对应的动态链接库。

    下面以SDL的配置为例,详细说明是如何配置的。

SDL在visual studio下的开发环境配置

  1. 下载SDL开发库 http://www.libsdl.org/download-2.0.php 现在的稳定版本是2.0.4

  2. 配置VS的开发环境。

    Visual Studio 2008以后,在项目->属性下配置的VC++的包含目录及库,只针对当前项目有效,每次新建项目的时候都要配置一次,比较繁琐。这里使用项目属性表

    来配置环境,这样每次新建项目的时候只需要导入配置好的项目属性表即可。

    1. 切换到属性管理器视图,如下图所示



      如果,默认的属性管理器的视图没有打开,可以在视图-> 其他窗口->属性管理器将其打开,如下图:

    2. 新建一个项目属性表。属性管理器下游两个目录:Debug | Win32和Release | Win32,可以针对Debug和Release给项目设置不同的属性,这里仅仅配置Debug下的项目属性。右键Debug | Win32

      选择新建项目属性表,如下图:

    3. 在新建的项目属性表中,配置SDL的开环境。右键新建的属性表,选择属性,如下图所示:

    4. 配置动态链接库

      使用上面配置好的属性表,只能保证在开发的环境是好的,但是运行的时候操作系统却找不到SDL的动态链接库SDL2.dll,还需要告诉操作系统该dll的位置,有以下三种方法可以将该dll的位置

      告知操作系统

      1. 将 @\SDL2-2.0.4\lib\x86下的SDL2.DLL复制到C:\Windows\System32目录下面(如果是64位的要复制到C:\Windows\SysWOW64)(@为SDL所在的根目录)
      2. 将SDL2.dll复制到项目生成exe文件同目录下
      3. 将 @\SDL2-2.0.4\lib\x86 添加到环境变量PATH
  3. SDL程序的main函数

    要将SDL的main函数声明为如下形式
int main(int argv,char* argc[])

否则,会得到如下错误:

  1. 测试SDL配置是否正确
# include <SDL.h>
int main(int argc, char* argv)
{
//Start SDL
SDL_Init(SDL_INIT_EVERYTHING);
//Quit SDL
SDL_Quit();
return 0;
return 0;
}

FFMPEG

FFMPEG的配置和SDL的配置过程基本类似,所不同的是其下载的文件包。

要配置FFMPEGE的开发环境需要下载两个文件:Dev和Shared,如下图所示(下载地址:https://ffmpeg.zeranoe.com/builds/)



Dev文件只包含了include文件和lib文件,其dll文件在shared文件下。

Visual studio 通用开发环境配置:SDL,FFMPEG为例的更多相关文章

  1. Visual Studio 2012 开发环境配置+控制台工具+桌面应用程序

    一.界面布局视图设置 1.窗口的布局.控制台窗口运行恢复到开发环境的设置方法 也可以保存好设好的个性化设置,导入设置: 2.视图|服务器资源管理器(sever explorer) 可以访问数据源.服务 ...

  2. OpenGL超级宝典visual studio 2013开发环境配置,GLTools

    做三维重建需要用到OpenGL,开始看<OpenGL超级宝典>,新手第一步配置环境就折腾了一天,记录下环境的配置过程. <超级宝典>中的例子使用了GLEW,freeglut以及 ...

  3. Visual Studio OpenCV 开发环境配置

    因为VS配置OpenCV好多新手都很难一次配置成功,而且OpenCV库每新建一个项目都要配置很是麻烦,所以今天就给大家介绍一个“一劳永逸”的方法. 注:理论上只要VS和OpenCV是版本兼容的,该方法 ...

  4. 打造TypeScript的Visual Studio Code开发环境

    打造TypeScript的Visual Studio Code开发环境 本文转自:https://zhuanlan.zhihu.com/p/21611724 作者: 2gua TypeScript是由 ...

  5. Visual Studio 2017开发环境的安装

    Visual Studio 2017是微软为了配合.NET战略推出的IDE开发环境,同时也是目前开发C#程序最新的工具,本节以Visual Studio 2017社区版的安装为例讲解具体的安装步骤. ...

  6. Google Android Studio Kotlin 开发环境配置

    Google 近日开发者大会宣布Kotlin成为Android开发的第一级语言,即Android官方开发语言,可见Google对Kotlin的重视,本文就介绍一下Android Studio下的Kot ...

  7. 配置合适的Visual Studio 2017 开发环境(其它版本的也适用)

    1.VS 安装完成后,可以重新配置合适的开发环境 第一步: 第二步: 第三步: 第四步:选择合适自己的开发环境 这里我选择常规,具体的可以看窗口右边的说明

  8. Visual Studio + Qt开发环境搭建

    1. 安装Visual Studio 2015 Visual Studio 2015下载地址如下,安装比较常规,不做介绍. Visual Studio Enterprise 2015 with Upd ...

  9. Unity3D-RPG项目实战(3):整合Visual Studio 2013开发环境

    古人云:工欲善其事必先利其器,IDE尽管属于一个非常上层的工具,可是一个好的IDE对工作效率提高还是非常大的. 事实上我还是满想用一下官方推荐的Mono,毕竟跨平台如今还是非常重要的一个特性.尝试了这 ...

随机推荐

  1. 前端框架 EasyUI (1)熟悉一下EasyUI

    jQuery EasyUI 官方网站 http://www.jeasyui.com/ .去年新开了个中文网 http://www.jeasyui.net/,不知道是不是官方的,不过看着挺像样.但是,广 ...

  2. Linq表达式、Lambda表达式你更喜欢哪个?

    什么是Linq表达式?什么是Lambda表达式? 如图: 由此可见Linq表达式和Lambda表达式并没有什么可比性. 那与Lambda表达式相关的整条语句称作什么呢?在微软并没有给出官方的命名,在& ...

  3. ABP文档 - Javascript Api

    文档目录 本节内容: AJAX Notification Message UI Block & Busy Event Bus Logging Other Utility Functions A ...

  4. SQL Server常见数据类型介绍

    数据表是由多个列组成,创建表时必须明确每个列的数据类型,以下列举SQL Server常见数据类型的使用规则,方便查阅. 1.整数类型 int 存储范围是-2,147,483,648到2,147,483 ...

  5. 学习ASP.NET Core,怎能不了解请求处理管道[1]: 中间件究竟是个什么东西?

    ASP.NET Core管道虽然在结构组成上显得非常简单,但是在具体实现上却涉及到太多的对象,所以我们在 "通过重建Hosting系统理解HTTP请求在ASP.NET Core管道中的处理流 ...

  6. 了不起的 nodejs-TwitterWeb 案例 bug 解决

    了不起的nodejs算是一本不错的入门书,不过书中个别案例存在bug,按照书中源码无法做出和书中相同效果,原本兴奋的心情掺杂着些许失落. 现在我们看一下第七章HTTP,一个Twitter Web客户端 ...

  7. 一个表缺失索引发的CPU资源瓶颈案例

    背景 近几日,公司的应用团队反应业务系统突然变慢了,之前是一直比较正常.后与业务部门沟通了解详情,得知最近生意比较好,同时也在做大的促销活动,使得业务数据处理的量出现较大的增长,最终系统在处理时出现瓶 ...

  8. C# 索引器,实现IEnumerable接口的GetEnumerator()方法

    当自定义类需要实现索引时,可以在类中实现索引器. 用Table作为例子,Table由多个Row组成,Row由多个Cell组成, 我们需要实现自定义的table[0],row[0] 索引器定义格式为 [ ...

  9. python 数据类型---文件二

    1.打印进度条 import sys,time for i in range(20): sys.stdout.write("#") sys.stdout.flush() #不等缓冲 ...

  10. atitit.attilax的软件 架构 理念.docx

    atitit.attilax的软件 架构 理念.docx 1. 预先规划.1 2. 全体系化1 3. 跨平台2 4. 跨语言2 5. Dsl化2 5.1. 界面ui h5化2 6. 跨架构化2 7. ...