本文仅针对C和C++

vs2013下载C/C++编译器后,能够包含常见的头文件,stdlib.h,stdio.h,math.h这些。如果有其他需求例如:调用GL/glfw32.h,freeglut.h这些openGL开源图像处理函数库,直接在代码中include是会报错的。这时候就要学会如何将这些文件添加进工程文件中。

(1)打开解决方案资源管理器,找到自己的项目。

PS:如果找不到资源管理器的可以在“视图”这一栏下找到

(2)右击工程名称,我这里是“test”。然后点击“属性”。

(3)进入“VC++目录”,在“包含目录中”添加下载好的包含目录,在“库目录”中添加下载好的.lib文件。

举个例子,比如我要添加<GLFW/glfw3.h>,根据自己电脑是32还是64位到官网下载相应的扩展库。我这里下载的是

点击来是这样的

我们需要在“包含目录”中把这里的“include”目录添加进去。

另外,在“库目录”中,我们需要添加有.lib的文件目录。我这里是vs2013,所以选择“lib-vc2013”这个文件夹,把这个目录添加进去。

(4)只做上面这些,只是告诉编译器去哪儿找这些文件,并不代表能用得起来。我们知道程序编译需要经过:预处理——编译——汇编——链接这几个步骤,在链接操作时,编译器要找链接库,可能是动态链接库.dll也可能是静态链接库.lib,或者两者都需要。

按照步骤依次打开,并在附加依赖项中添加刚才的链接库。以glfw为例,就是在里面手动添加“glfw3.lib”字样,然后保存。至于为什么是glfw3.lib

因为我这个库的名字就是这个啊。。。。。。

(5)完成以上,在写代码的时候包含#include <GLFW/glfw.h>就可以调用这个库下的相关函数了。至于为什么包含头文件叫这个

其实我这里头文件的名称并不叫这个。。。。。。

发现了,因为我在之前的“包含文件”中添加的目录路径是到"include"的,但是我想访问的是在"include'目录下的GLFW中的glfw3.h。路径也就是

GLFW/glfw3.h。解释清楚了。

最后最后,一个非常关键的点:添加库目录的时候,一定一定要“送到家”,比如abc.lib文件在/app/lib/ccc/abc.lib中,添加的时候一定要添加到/app/lib/ccc,如果你只是/app/lib,链接的时候会报错!

综上,添加一个扩展库,需要有.h文件,.lib文件和.dll文件。逐个添加,逐个包含。

vs2013如何添加扩展库函数的更多相关文章

  1. 【C#】使用IExtenderProvider为控件添加扩展属性,像ToolTip那样

    申明: - 本文适用于WinForm开发 - 文中的“控件”一词是广义上的说法,泛指包括ToolStripItem.MenuItem在内单个界面元素,并不特指继承自Control类的狭义控件 用过To ...

  2. net-snmp源码VS2013编译添加加密支持(OpenSSL)

    net-snmp源码VS2013编译添加加密支持(OpenSSL) snmp v3 协议使用了基于用户的安全模型,具有认证和加密两个模块. 认证使用的算法是一般的消息摘要算法,例如MD5/SHA等.这 ...

  3. net-snmp源码VS2013编译添加加密支持(OpenSSL)(在VS里配置编译OpenSSL)

    net-snmp源码VS2013编译添加加密支持(OpenSSL) snmp v3 协议使用了基于用户的安全模型,具有认证和加密两个模块. 认证使用的算法是一般的消息摘要算法,例如MD5/SHA等.这 ...

  4. linux下用phpize给PHP动态添加扩展

    使用php的常见问题是编译php时忘记添加某扩展,后来想添加扩展,但是因为安装php后又装了一些东西如PEAR等,不想删除目录重装,这里就需要用到phpize了. 如我想增加bcmath扩展的支持,这 ...

  5. linux下用phpize给PHP动态添加扩展(转)

    使用php的常见问题是:编译php时忘记添加某扩展,后来想添加扩展,但是因为安装php后又装了一些东西如PEAR等,不想删除目录重装,别说,php还真有这样的功能. 我没有在手册中看到. 如我想增加b ...

  6. php添加扩展插件

    给PHP安装扩展的方式有好多 一.重新编译 进入PHP源码目录./configure --prefix=/usr/local/php ...[其他编译参数] 二.通过phpize添加扩展 进入PHP源 ...

  7. shell的split生成的文件按规律命名及添加扩展名

    可以参考 用shell切分文件--split shell下的split命令主要用于分割一些大文件用的,比如经常要用到将一个几十万行的TXT分割为多少行一个的文件,非常有用,唯一坑爹的是,切割后的文件不 ...

  8. ios开发总结:Utils常用方法等收集,添加扩展类,工具类方法,拥有很多方便快捷功能(不断更新中。。。)

    BOBUtils 工具大全 本人github开源和收集功能地址:https://github.com/niexiaobo [对ios新手或者工作一年以内开发人员很有用处] 常用方法等收集.添加扩展类. ...

  9. Raspberry Pi3 ~ Eclipse中添加wiringPi 库函数

    这篇是在博客园原创 转载注明出处啊 以前用单片机.STM32之类的时候都是在一个集成的开发环境下进行的 比如Keil.IAR等 那么linux下编程,eclipse是个不错的选择 关于树莓派的GPIO ...

  10. chrome添加扩展程序

    example: chrome添加vue devtools 扩展程序 打开地址:https://chrome-extension-downloader.com/ download extension: ...

随机推荐

  1. ubuntu亲测安装opencv和成功解决Makefile:160: recipe for target 'all' failed make: *** [all] Error 2

    1.因为项目需要,我安装的是opencv3.0.0,从github上面下载的opencv包 git clone https://github.com/Itseez/opencv.git git clo ...

  2. 2018GPLT

    2018GPLT 7-1 天梯赛座位分配 一共有n所学校参加比赛,每所学校有\(a_i\)只队伍,每只队伍共10人,要保证每个学校的所有队员不能相邻就坐,令每一所学校的队伍排成一排纵列,然后从第一所学 ...

  3. JAVA常用类(一)Syatem类

    System类:系统类,主要用于获取系统的属性和方法,没有构造方法,其属性都是静态属性,方法都是静态方法 .System类是jdk提供的一个工具类,有final修饰,不可继承,由名字可以看出来,其中的 ...

  4. AXI VALID READY 握手机制

    1. VAILD 和READY 传输方向 2. VAILD 和READY依赖关系 前面说到AXI的五个通道是独立的,但通道间必须保持一定的约定关系:写回复必须在一次写事务的最后一个写数据之后读数据必须 ...

  5. 【已解决】SpringBoot + Mybatis-plus 实体类属性注解 @TableField 无法获取到数据库值(属性变量名带下划线)

    问题描述: 实体类变量的命名格式 如果采用的是 XX_XX带下划线的形式,那么在低版本的mybatis-plus是不支持和数据库映射的. 如果是单个单词不存在这个问题,如果出现多个单词,尽量采用驼峰式 ...

  6. jenkins 连接Windows

    1.Windows机器需要安装powershell Server 下载路径:https://www.nsoftware.com/powershell/server/ 点击startk开启该服务 2.配 ...

  7. vim重复、删除、复制、粘贴命令

    0.选中 V+(上.下键)    表示选中 1.删除 1.输入10x,删除10个连续字符 2.输入3dd,将会删除3行文本 在普通模式下,你还可以使用dw或者daw(delete a word)删除一 ...

  8. 第15周作业--JDBC连接数据库

    编写一个应用程序,输入用户名和密码,访问test数据库中t_login表(字段包括id.username.password),验证登录是否成功.当登录成功后,将t_user表(id.name.sex. ...

  9. matlab画图之plot画折线图

    Matlab绘制折线图 使用plot(x,y)函数创建折线图时,x,y有以下要求: ①如果 X 和 Y 都是向量,则它们的长度必须相同.plot 函数绘制 Y 对 X 的图. ②如果 X 和 Y 均为 ...

  10. std::string实现split和trim方法

    void split(const std::string& str, const std::string& strDelimiter, std::vector<std::stri ...