本文仅针对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. D - Pair of Topics

    D - Pair of Topics 思路: 这个题需要一点思路,ai+aj>bi+bj可以转换成ai-bi+aj-bj>0,也就是c[i]=a[i]-b[i],只需要找c[i]+c[j] ...

  2. uni-app学习笔记之----页面跳转

    1.声明式跳转 <navigator url="/pages/detail/detail"> <button>跳转至详情页</button> & ...

  3. 软件工程日报三——创建一个简单app和SDK的介绍

    昨天讲安卓studio和gradle等软件和环境都配置成功,今天开始创建第一个app. 一.打开Android studio,创建一个新文件,点击File,选择New Project里面的Empty ...

  4. elasticsearch 排错总结

    控制台乱码 修改elasticsearch-7.6.2\config下的jvm.options文件,在任意行上加上 -Dfile.encoding=GBKIK报错但成功启动,按照网上的说法是jdk权限 ...

  5. django 安装cerlery error in anyjson setup command: use_2to3 is invalid.

    直接报错 error in anyjson setup command: use_2to3 is invalid. setuptools pip install "setuptools< ...

  6. ES 基础操作

    集群 健康值的三种状态 Green:所有索引的所有分片均可用 primary 和 replice 均可用. Yellow 至少有一个 replice不可以用, 但是所有的 primary 正常. Re ...

  7. vue 中的 provide/inject

    provide/inject 是 vue 2.2.0 版本新增 类型: provide:Object | () => Object inject:Array<string> | { ...

  8. eFuse技术

    1. 基本概况及介绍   不同于大多数FPGA使用的SRAM阵列,eFuse一次只有一根熔丝能够被编程,这是该方法的配置能力存在限制范围的原因.但当与日益成熟的内置自测试(BIST)引擎组合使用时,这 ...

  9. excel数字转日期

    import datetime delta = datetime.timedelta() today = datetime.datetime.strptime('1899/12/30', '%Y/%m ...

  10. Codeforces 197A Plate Game

    一.题意 你有一个长方形的桌子,长度 a ,宽度 b ,以及无限多的半径 r的圆盘. 两位玩家玩以下游戏:他们轮流把圆盘放在桌子上,使得盘子之间不能互相重叠(但他们的边缘可以互相接触),任何盘子上的任 ...