C++ 如何加载lib

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了C++ 如何加载lib相关的知识,希望对你有一定的参考价值。


1.​​lib文件​​的加载  

  lib其实就是window下的静态库文件

  ​​C++​​加载静态库文件只能静态加载,在编译的时候进行

  下面以vs2010为例:

  首先右键单击项目,选择属性:

  ​

C++

  打开配置属性-链接器-常规-附加库目录

  ​

C++

  新建一行,填入你要加载​​lib文件​​所在的路径

  ​

C++

  现在设置好了加载的lib目录,再设置要加载的lib

  打开项目属性-链接器-输入-附加依赖项

  ​

C++

  在编辑框输入lib的全名(不带路径)一个文件占一行

  ​

C++

  现在再编译文件的时候,自动就会使用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的主要内容,如果未能解决你的问题,请参考以下文章

dyld:库未加载:/usr/local/opt/jpeg/lib/libjpeg.9.dylib OpenCV C++ MacOS

如何加载android系统本机库

如何在cppyy中加载库?

如何 p/invoke 调用函数仅使用但 C++ 需要 .a/.lib/.o 文件?

C++ 如何使用 Socket 类向 HTTP 服务器发送数据和接收响应

双亲委派模型