dll 和 lib--初级】的更多相关文章

(1) .dll .obj .lib使用在windows平台下.        .dll:动态链接库,作为共享函数库的可执行文件.        .obj:目标文件,相当于源代码对应的二进制文件,未经重定位. .lib:可理解为多个obj的集合,本质与.obj相同. (2) .so .o .a使用在linux平台下.        .so:(share object)动态链接库,跟Windows平台类似.        .o: 目标文件,相当于源代码对应的二进制文件.        .a: 与.…
关于lib和dll的区别如下:(1)lib是编译时用到的,dll是运行时用到的.如果要完成源代码的编译,只需要lib:如果要使动态链接的程序运行起来,只需要dll.(2)如果有dll文件,那么lib一般是一些索引信息,记录了dll中函数的入口和位置,dll中是函数的具体内容:如果只有lib文件,那么这个lib文件是静态编译出来的,索引和实现都在其中.使用静态编译的lib文件,在运行程序时不需要再挂动态库,缺点是导致应用程序比较大,而且失去了动态库的灵活性,发布新版本时要发布新的应用程序才行.(3…
VS2010 C++环境下DLL和LIB文件目录及名称修改 转自:http://blog.csdn.net/archielau/article/details/8507581 DLL工程,Debug版本下输出文件由basetool.dll basetool.lib 改为basetoolD.dll basetoold.lib 需设置: 1.配置属性-常规-目标文件名 $(ProjectName) 加d 2.配置属性-连接器-常规-输出问件 由 加d 3.配置属性-连接器-高级-导入库,设置文件名$…
简要的介绍一下在微软开发工具中(VC)静态链接库和动态链接库生成过程中出现的.dll  .lib  .def 和 .exp文件类型.windows平台上可执行文件可能是一个.exe文件也可能四个.dll文件.当然也有一些比较特别的exe或者dll文件,不过他们有其他样式的后缀名比如屏保程序(.scr),ActiveX DLL 用的.ocx 还有各种驱动使用的各种扩展名.这里我们不讨论.com 和一些脚本文件比如.bat .cmd等,虽然他们仍然是可执行文件. 库就是包含着一坨数据和代码的东西,这…
2.是关于如何加载dll或lib库的.可以看这篇bog   Qt调用dll中的功能函数点击打开链接 **************************************************************************************************************************************************** 声明: 事先我已经自己动手写了一个简单的dll文件(myDLL.dll),C版接口的.并且用我前两篇有…
WinRar官方提供了源码(http://www.rarlab.com/rar_add.htm):如果自己想要修改里面的内容就要重新生成DLL和LIB,我在网上找了很多资料都没有说得很清楚.花一两天的时间才把他生成成功.网上的资料都给了一些误导,所以改了很久才完成.现在给出正确的步骤,给这方面的学习者提供一下思路. )建立一个空的win32 dll工程2)把.hpp和.cpp都添加到工程里3)从工程中移除不是删除arccmt.cpp.beosea.cpp.coder.cpp.model.cpp.…
本文基于OpenBlas的编译和安装,来说明如何从一个dll文件生成lib库文件. 参考OpenBlas的说明“Howto generate import library for MingW”,和MinGW的说明HOWTO Create an ImportLibrary for a DLL using MinGW,学习如何生成lib库,其中OpenBlas的说明讲的是如何使用Visual studio的lib.exe工具从dll生成lib文件,而MinGW讲的是如何把一个windows的dll转…
在StackOverflow中看到一个提问“what's the difference between DLL's and LIB's?” 有如下回复值得参考: 回复一:…
由于遇见过多次动态链接库的使用,自己也写过DLL,每次都要费好大劲去配置,现在就简单的总结一下,争取以后少走弯路! 一般都会有三个文件: .h  头文件 .lib  静态链接库 .dll  动态链接库 这三类文件的放置路径:就放在VC  或者VS的路径默认的 include  lib文件夹下就行,其中  .h文件放在include 文件夹下  dll 和lib  文件就放在lib文件夹下 然后说使用,首先include  <.h> 文件 然后#pragma comment(lib,"…
转:http://blog.csdn.net/galaxy_li/article/details/7411956 1:神马是Dll和Lib,神马是静态链接和动态链接 大家都懂的,DLL就是动态链接库,LIB是静态链接库.DLL其实就是EXE,只不过没main. 动态链接是相对于静态链接而言的.所谓静态链接就是把函数或过程直接链接到可执行文件中,成为可执行程序中的一部分,当多个程序调用同样的函数时,内存里就会有这个函数的多个拷贝,浪费内存资源.而动态链接则是提供了一个函数的描述信息给可执行文件(并…
 动态链接库Dynamic-Linked Lib 的创建与使用 动态链接库(Dynamic Link Library 或者 Dynamic-link Library,缩写为 DLL),是微软公司在微软Windows操作系统中,实现共享函数库概念的一种方式.这些库函数的扩展名是 ”.dll". 动态链接提供了一种方法,使进程可以调用不属于其可执行代码的函数.函数的可执行代码位于一个 DLL 文件中,该 DLL 包含一个或多个已被编译.链接并与使用它们的进程分开存储的函数.DLL 还有助于共享数据和…
对于dll和lib两者的关系,需要理解的一个概念是编译时和运行时.   lib是编译时的东西,在lib里面包含了方法名和方法所在的dll名字,可以用dumpbin -all XXX.lib查看内容. dll是运行时的东西,里面是方法的实体.可以通过depends查看里面的方法和引用的dll文件等.   举个例子方便理解: 有两个project,A和B,A的输出是一个动态dll,B的输出是一个exe.B需要用到A里面的类和方法等. 首先是对A的处理:要把A的类或方法定义为“导出型”,即使用关键字_…
1.dll:dynamic link library: lib:static link library. 2.windows系统中,许多app并不是仅由一个完整的exe构成,而是按功能分成了若干部分,由exe.dll.lib等组成,这些里面包含了函数的实现过程等. 3.lib编译时用到,用一下,链接完了就没事了:dll运行时用到,可能一直都在用. 4.如果只有lib,那么这个lib文件是静态编译出来的,索引和实现都在其中.使用静态编译的lib文件,在运行程序时不需要再挂dll,缺点是导致应用程序…
在"Projet"->"Settings..."的"Link"选项卡中 "Output file name"中设置dll的输出路径 Project options:中可以看到刚刚设置生成的DLL路径, 紧跟着就是LIB文件的路径,默认应该是DEBUG或者release的目录下, 这里需要手动修改LIB路径到你所需要的设置生成相应lib文件的所在路径,下面一句设置是Release模式下路径: /out:"../U…
本文基于OpenBlas的编译和安装.来说明怎样从一个dll文件生成lib库文件. 參考OpenBlas的说明"Howto generate import library for MingW",和MinGW的说明HOWTO Create an ImportLibrary for a DLL using MinGW,学习怎样生成lib库.当中OpenBlas的说明讲的是怎样使用Visual studio的lib.exe工具从dll生成lib文件,而MinGW讲的是怎样把一个windows…
是关于如何加载dll或lib库的.可以看这篇bog   Qt调用dll中的功能函数点击打开链接 **************************************************************************************************************************************************** 声明: 事先我已经自己动手写了一个简单的dll文件(myDLL.dll),C版接口的.并且用我前两篇有关D…
连续几天终于将一个又一个问题解决了,这里说其中一个问题 描述问题:使用多线程pthread的时候,(我用的IDE,CODEBOLCKS)编译后发现直接弹出窗口,程序还没有被Build..巴拉巴拉,然后陷入了这个循环.提示有一句pthead_create未定义. 发现:pthread要用到动态链接库(libpthread.a)才能使用. 解决办法:后来在setting->complies and link->link setting里面加入了系统中这个文件的地址. 详细查了一下,.a与.so的区…
VS2013生成DLL文件 vs2013创建及使用DLL 一般来说项目偏爱生成dll动态库文件,因为可以解决静态库造成的空间浪费和更新困难问题,另外创建静态库时,我一般是建立空项目后,在项目配置类型中进行选择. 什么是库 库是写好的现有的,成熟的,可以复用的代码.现实中每个程序都要依赖很多基础的底层库,不可能每个人的代码都从零开始,因此库的存在意义非同寻常.本质上来说库是一种可执行代码的二进制形式,可以被操作系统载入内存执行.库有两种:静态库(.a..lib)和动态库(.so..dll). 所谓…
参考:链接1   链接2 DLL 动态链接库(Dynamic Link Library,缩写为DLL),运行时加载是一个可以被其它应用程序共享的程序模块,其中封装了一些可以被共享的例程和资源.动态链接库文件的扩展名一般是dll,也有可能是drv.sys和fon,它和可执行文件(exe)非常类似 DLL中虽然包含了可执行代码却不能单独执行,而应由Windows应用程序直接或间接调用. DLL是程序运行时把dll里的代码和资源加再到进程地址空间去,所以叫动态连接 需要和你的程序一起发布才行 允许可执…
下载Boost 下载链接:Boost Downloads 下载完成后,将其解压放置到需要编译保存的目录下,比如我自己的目录: F:\Work\Boost 打开VS编译 如果是使用的VS2017,则打开 x86 Native Tools Command Prompt For VS2017. 出现如下界面 使用命令行,将操作目录设置到Boost指定的目录,F:work/Boost 本文介绍一个可以切换盘符的方法:cd /d f: 即可切换盘符 生成b2.exe 将批处理文件"booststrap.b…
1.要在生成DLL文件的同时生成Lib文件,函数声明时前面要加__declspec(dllexport). 可在头文件中如下定义: #ifndef __MYDLL_H#define __MYDLL_H #ifdef MYDLL_EXPORTS#define MYDLL __declspec(dllexport)#else#define MYDLL __declspec(dllimport)#endif MYDLL int Add(int a, int b); class MYDLL MyObje…
原来工程编译的一些dll库,这次项目需要静态库,偷懒想直接转化.看到网上一些教程,使用VC工具和建立lib项目来实现.有点麻烦.还有一种方法,仅仅利用工具和几条命令转化.来试试看.文章参考harries的博客.特此谢谢.一.使用MSYS在windows下编译了最新版的x264,生成了动态库libx264-142.dll二.下载工具poxports  版本号0.43.解压后,得到pexports-0.43\bin\pexports.exe 这里下载将pexports.exe复制到C:\Progra…
Win7 64位系统下通过VS2015编译好的最新的OpenSSL(1.0.2j)所有八个版本的链接库, 包含以下八个版本: 1.32位.debug版LIB: 2.32位.release版LIB: 3.32位.debug版DLL: 4.32位.release版DLL: 5.64位.debug版LIB: 6.64位.release版LIB: 7.64位.debug版DLL: 8.64位.release版DLL: http://download.csdn.net/detail/yaojingkao/…
一.dll动态链接库 1.dll 没有 main 函数 2.不能直接执行,可以注入exe中让它间接执行.只有把它编译到应用程序中才可以. 3.编写dll 函数前加上 _declspec(dllexport) void go(){} 二.lib(静态链接库) 若要使用 lib,则需要将他放在源文件那个目录下. 1.加载lib有两种方式: 配置中加入lib库 代码:      #pragma comment(lib,“a.lib”) 虽然不加头文件会自动寻找库,但最      好还是加上好一点. 2…
1,下面的命令行将这个代码编译成 dll. gcc mydll.c -shared -o mydll.dll -Wl,--out-implib,mydll.lib 其中 -shared 告诉gcc dlltest.c 文件需要编译成动态链接库.-Wl 表示后面的内容是ld 的参数,需要传递给 ld. --out-implib,dlltest.lib 表示让ld 生成一个名为 dlltest.lib 的导入库. 如果还需要 .def 文件,则上面的命令行可以写为: gcc mydll.c -sha…
转自http://blog.163.com/zhengjiu_520/blog/static/3559830620093583438464/ 前面有一章说编译与链接的,说得很简略,其实应该放到这一章一块儿来说的.许多单讲C++的书其实都过于学院派,对于真实的工作环境,上百个源文件怎么结合起来,几乎没有提及.我引导读者一步步看看lib与DLL是怎么回事. 一个最简单的C++程序,只需要一个源文件,这个源文件包含了如下语句 int main(){return 0;} 自然,这个程序什么也不做. 当需…
利用VS2010工具,调试DLL文件的方法现总结如下: 在一个解决方案中生成两个工程,假设MYDLL和MYDLG两个工程,前者是DLL工程,后者DLG调用前边的DLL工程.设置如下: 目录如下:图,本文例子中,DLL文件和EXE文件都生成在下边的这个DEBUG文件中:D:\My Documents\Visual Studio 2010\Projects\MYDLL\Debug,当然,也可以生成在其他文件目录下,只要设置正确即可.       目的:遵循DLL和exe最后生成的文件在一个目录内,且…
vs2008中,有些项目上的功能是要生产库文件给其他项目调用的,以下是一些设置库文件(x.dll和x.lib)输出路径的方法. 设置x.dll 输出路径方法是在右键项目的"属性"->连接器->常规, 然后在常规属性界面中的 "输出文件" 中填入自己想要x.dll文件的输出路径. 设置x.lib 输出路径方法是在右键项目的"属性"->连接器->高级, 然后在高级属性界面中的 "导入库" 项中填入自己想要x…
利用VS2010工具,调试DLL文件的方法现总结如下: 在一个解决方案中生成两个工程,假设MYDLL和MYDLG两个工程,前者是DLL工程,后者DLG调用前边的DLL工程.设置如下: 目录如下:图,本文例子中,DLL文件和EXE文件都生成在下边的这个DEBUG文件中:D:\My Documents\Visual Studio 2010\Projects\MYDLL\Debug,当然,也可以生成在其他文件目录下,只要设置正确即可.       目的:遵循DLL和exe最后生成的文件在一个目录内,且…
lib:里面包含了很多源代码,工程会将这些源代码加入自己的项目中编译: dll:动态编译库,允许可执行文件在运行中加载里面的资源. 使用lib需注意两个文件:(1).h头文件,包含lib中说明输出的类或符号原型或数据结构.应用程序调用lib时,需要将该文件包含入应用程序的源文件中.(2).LIB文件,略. 使用dll需注意三个文件:(1).h头文件,包含dll中说明输出的类或符号原型或数据结构的.h文件.应用程序调用dll时,需要将该文件包含入应用程序的源文件中.(2).LIB文件,是dll在编…