C++ 如何加载lib
1.lib文件的加载
lib其实就是window下的静态库文件
C++加载静态库文件只能静态加载,在编译的时候进行
下面以vs2010为例:
首先右键单击项目,选择属性:
打开配置属性-链接器-常规-附加库目录
新建一行,填入你要加载lib文件所在的路径
现在设置好了加载的lib目录,再设置要加载的lib
打开项目属性-链接器-输入-附加依赖项
在编辑框输入lib的全名(不带路径)一个文件占一行
现在再编译文件的时候,自动就会使用lib中包含的符号了
2.lib文件的使用
lib文件是window的静态库文件,其实就是很多编译好的函数代码的集合。这种文件里面的代码无法直接执行,必须进行二次编译后才能使用。当你使用了lib中的函数后,编译器会将其代码从lib文件中提取出来,然后追加到你自己的程序中去。所以,使用lib编译出来的执行程序比用dll的大一些,甚至很多。但是这样做,程序的执行效率会高很多(dll必须在运行时去找函数来执行,并且要进行耗时的长跳转),一种典型的通过空间换时间的策略。
------------------------------------------------------------------------------------------------------------------------------------------------------------
1 LIB文件直接加入到工程文件列表中
在VC中打开File View一页,选中工程名,单击鼠标右键,然后选中"Add Files to Project"菜单,在弹出的文件对话框中选中要加入DLL的LIB文件。然后在首先要使用该函数的地方加上该LIB的头文件,如#include "..\lib.h"即可(没有头文件当然就不用了)。
2 设置工程的 Project Settings来加载DLL的LIB文件
打开工程的 Project Settings菜单,选中Link,然后在Object/library modules下的文本框中输入DLL的LIB文件,如you.lib(或者lib文件的路径,包括文件名)。然后在首先要使用该函数的地方加上该LIB的头文件,如#include "..\lib.h"即可(没有头文件当然就不用了)。
3 通过程序代码的方式
加入预编译指令#pragma comment (lib,"*.lib"),这种方法优点是可以利用条件预编译指令链接不同版本的LIB文件。因为,在Debug方式下,产生的LIB文件是Debug版本,如Regd.lib;在Release方式下,产生的LIB文件是Release版本,如Regr.lib。然后在首先要使用该函数的地方加上该LIB的头文件,如#include "..\lib.h"即可(没有头文件当然就不用了)。
C++ 如何加载lib相关推荐
- C++加载lib和dll的方法
C++加载lib的方法: 方法1.直接添加lib项目的引用 方法2.在属性-连接器-输入-里添加要使用的lib,在连接器-常规-附加库目录添加lib的目录 C++加载dll的方法(参考网址https: ...
- 解决URL存在特殊符号、异步线程池配置、动态加载lib下所有jar包
一.解决URL存在特殊符号|{}?&.URL中包含%2F.URL中包含%5C import lombok.extern.slf4j.Slf4j; import org.springframew ...
- VC6.0加载lib文件的三种方法
MFC编写程序,都要用到动态链接库,MFC相关的动态库有MFCD42和MFC42等,MFC框架程序已经自动加载,那么如何引入第三方的动态链接库到工程中呢? 静态链接库是要先把程序中所需要使用的函数编译 ...
- #pragma加载lib文件
lib加载有两种方式,一种是直接在工程属性里面添加,另一种是通过代码添加. 1.通过工程属性添加. 直接右键工程属性,添加lib库所在的目录和lib库文件名,即可在工程中调用库中的接口. 2.通过代码 ...
- Qt5 使用 #pragma 加载 lib 文件的注意事项
--------------------------------------------- -- 时间:2018-12-06 -- 创建人:Ruo_Xiao -- Qt5.2.1 和 VS2010 - ...
- Linux查看lib加载路径
一.Linux加载Lib优先级: 总的来说,优先级方案可以归类为以下两种版本 .(LD_PRELOAD的优先级最高) 一.如果指定了 RUNPATH 字段(即 DT RUNPATH 字段非空): 1 ...
- 【死磕JVM】五年 该知道JVM加载机制了!
类加载 Java虚拟机类加载过程是把Class类文件加载到内存,并对Class文件中的数据进行校验.转换解析和初始化,最终形成可以被虚拟机直接使用的java类型的过程 和那些编译时需要连接工作的语言不 ...
- java类二次加载_深入理解java之类加载器
一.类与类加载器 类加载器:实现加载阶段的第一步,通过一个类的全限定名来将这个类的二进制字节流加载进jvm. 类与类加载器:任意一个类唯一性都是由它本身和加载它的类加载器确定,两个类是否相等在它们是由 ...
- java加载并运行虚拟机_《深入理解Java虚拟机》- Java虚拟机是如何加载Java类的?...
Java虚拟机是如何加载Java类的? 这个问题也就是面试常问到的Java类加载机制.在年初面试百战之后,菜鸟喜鹊也是能把这流程倒背如流啊!但是,也只是字面上的背诵,根本就是像上学时背书考试一样. ...
最新文章
- 学习html5系列之比较典型的div滥用
- 下一站,向冠军冲击!
- 计算机一级判断题2016,2016年12月计算机一级考试WPS判断题及答案
- 物联网生物识别技术在工作场所中发挥更大作用
- 整图下沉,MindSpore图引擎详解
- idea自动生成get set_CTO:不要在Java代码中写set/get方法了,逮一次罚款
- c c++ 函数内数组初值_C编程基础-关键字-函数和指针
- 【洛谷P1538】迎春舞会之数字舞蹈
- python微信自动打卡_「微信辅助」吃鸡再也不怕了,Python用wxpy实现微信自动回复...
- 启发式算法在最优化问题求解中的应用与实践
- [Vue.js] 深入 -- 组件化开发
- Java基础学习总结(85)——Java中四种线程安全的单例模式实现方式
- 关于Ajax load页面中js部分$(function(){})的执行顺序
- 如何安装Pycharm和汉化包(包括安装软件,无广告)
- DM7达梦数据库介绍和安装
- oracle sqlplus命令登录数据库
- Web The7安装
- Error Based Injection和sql注入函数
- 固态硬盘是什么接口_笔记本固态硬盘的接口有哪些?来学习下笔记本SSD小知识...
- 大学计算机实验教程制作电子小报,word中电子小报怎么做?word电子小报的图文教程...