本文仅针对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. 嵌入式Linux应用开发

    3-4 Makefile常用的函数 i.  $(foreach var,list,text) 简单地说,就是 for each var in list, change it to text. 对lis ...

  2. Elasticsearch Java client使用

    前言 Elasticsearch官方列出了好几个客户端,如下所示 Java Client Java Rest Client(Java High Level REST Client) Java Tran ...

  3. 【C++】之前学习C++没有注意到的点或者学到了冷知识(待补充)

    1.string和c_str() string str = "hello"; const char* cstr = str.c_str(); str = "yep,i m ...

  4. RTC@@@Real-Time Clock(实时时钟的简称)及电路问题分析

    RTC@@@Real-Time Clock(实时时钟的简称) 实时时钟(Real-Time Clock)是PC主板上的晶振及相关电路组成的时钟电路的生成脉冲,提供稳定的时钟信号给后续电路用.主要功能有 ...

  5. vue iframe网页内嵌及传参

    思路 通过域名传参做并加密处理 内嵌页面通过域名来接收参数并解密 外套页面 <iframe :src="url" scrolling="yes" back ...

  6. 解决uniapp 使用自带 switch 双向绑定视图不更新的问题

    使用  this.$set( a, b, c) a:需要更新视图属性对象 b:具体的属性值(就是你要更新视图的属性值) c:传递的参数 this.$set(this.gwjSelet,this.gwj ...

  7. 微信小程序引入外部字体(字体图标过大,引入外链)

    1.把字体放在服务器上,因为字体图标比较大,小程序只支持2m 2.字体加载 3.检测是否加载成功(可能会存在https和http问题,防止跨域)

  8. Linux7重置root管理员密码

    1.先确定是否为rhel 7系统(别的系统我没有试过,请慎重尝试) cat /etc/redhat-release 查看Linux的操作系统 2.按键盘e键进入内核编辑界面 3.找到linux16这行 ...

  9. 【音视频】FFmpeg打开视频 | 保存图片

    1.初始化FFmpeg av_register_all(); //初始化FFMPEG 调用了这个才能正常使用编码器和解码器 但是这个函数如今已经没什么用了,它的就是把你定义和系统初始化的编码器和解码器 ...

  10. JS学习-setTimeout()

    setTimeout() 超时限制-节流 /* interval(),在setInterval()时间间隔到期后调用. * timeout()setTimeout()计时器到期后调用. * run() ...