静态链接库的编辑和使用

一、基本概念

静态链接库和动态链接库都是经过编译的二进制文件,window下的后缀分别是.lib和.dll;在linux下的后缀分别是.a和.so。

在windows下写程序的时候常常会用到别人写的.lib和.dll 等库文件。库文件的好处是对源代码进行保密,减少重复编译时间,增强程序的模块化。

使用时,.lib 文件的内容会包含到最终生成的 .exe 文件中,最终的.exe 文件可以独立运行在用户的电脑上;而 .dll 文件则不被包含到 .exe 文件中,用户电脑必须包含 .dll 文件才能运行 .exe 程序。因此,若程序需要用到 .lib 文件,则开发者电脑上必须有这个文件,而用户的电脑上不必有这个文件;若用到 .dll 文件,开发者和用户电脑都必须包含 .dll 文件。

静态链接库的优点是执行速度快,可执行文件独立,缺点是体积大;

动态链接库的优点是节省内存,更换dll文件不会影响可执行文件,便于程序的维护和扩展(比如开发者修改了某个dll文件实现的函数,只需要把新版的dll文件发给用户就可以了,不必重新发送exe),缺点是应用程序必须和dll同时发行,否则应用程序无法运行。

lib是编译时用到,dll是运行时用到,如果需要完成源代码的编译,只需要lib,如果要运行动态链接程序,只需要dll;

动态链接库的情况下,同时含有dll文件和lib文件,lib文件中是一些索引信息,记录了dll文件中函数的入口和位置,dll保存的才是函数的具体内容和数据,因此节省了应用程序占用的内存;

静态链接库的情况下只有lib文件,lib文件是静态编译出来的,索引和实现都在其中,应用程序运行时不需要再有dll库,但这样的话导致程序较大,失去了动态库的灵活性,发布新版本时必须发布新的应用程序才行。

二、静态链接库的编辑

1. 新建项目


2.选择创建win32项目,输入名称,比如Add


3. 下一步,选择“静态库”,勾选“预编译头”


4. 完成--->右键“源文件”--->“添加”--->“新建项”


5. 命名为“Add”,然后编辑Add.cpp 文件


6. 在“头文件”中添加Add.h 文件


上面的ifndef define endif 等是为了避免重复加载头文件,“__STATIC_H__”可以是随便什么东西。

7.点"生成",选"生成Add"


然后在你的项目目录下,debug文件夹中就有了Add.lib 文件。


三、静态链接库的使用

1. 新建一个工程,通常最常用的Win32控制台应用程序,命名为uselib


2. 新建空项目


3. 把之前 .../Add/debug 目录下的 .lib 文件以及 .../Add 目录下的 Add.h 文件复制到uselib文件夹。

4. 编辑uselib的头文件uselib.h,其中pragma那行的意思是链接静态库Add.lib


5. 编辑源文件uselib.cpp


7. 摁F7编译、链接,摁ctrl+F5 运行,程序可以运行


这就是静态链接库的编辑和使用。

通常在使用别人的软件包时,由于其中含有大量的头文件和库文件,因此把他们的头文件和库文件文件都复制到自己的工程下面是很麻烦的,可以在项目属性中添加包含目录和库目录。具体操作可以参考opencv的配置。


  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Go ffmpeg是一个使用Go语言编写的FFmpeg静态链接库。它允许开发者在Go应用程序中调用FFmpeg库的功能,从而进行视频和音频处理操作。 使用Go ffmpeg可以轻松地在Go应用程序中实现FFmpeg的功能,而无需直接使用FFmpeg命令行工具或构建动态链接库(DLL或SO)。通过使用Go ffmpeg,开发者可以更方便地编写跨平台的应用程序,而无需考虑不同操作系统之间的差异。 要使用Go ffmpeg静态链接库,您需要按照以下步骤进行操作: 1. 下载和安装FFmpeg库:首先,您需要从FFmpeg官方网站下载并安装FFmpeg库。您可以选择适合您的操作系统的版本。 2. 获取Go ffmpeg库:您可以从Go ffmpeg官方网站下载相应的库文件。确保下载的库文件是针对您的操作系统和架构进行编译的。 3. 构建Go ffmpeg静态链接库:在命令行中,导航到Go ffmpeg库的目录,并执行以下命令来构建静态链接库: ```arduino go build -buildmode=c-archive -o libffmpeg.a ffmpeg_*.go ``` 上述命令中的`ffmpeg_*.go`是您的Go代码文件名,`libffmpeg.a`是构建后的静态链接库文件名。 4. 导入静态链接库:在您的Go应用程序中,使用`import`语句导入静态链接库。例如: ```go import "path/to/libffmpeg.a" ``` 请确保将`path/to/libffmpeg.a`替换为您实际导入的静态链接库文件的路径。 5. 使用FFmpeg功能:现在,您可以在Go应用程序中使用Go ffmpeg库中的功能进行视频和音频处理操作。您可以使用库中的函数和方法来执行各种FFmpeg操作,例如读取、写入、转换和编辑视频文件等。 请注意,在使用Go ffmpeg之前,您需要确保您的系统上已正确安装FFmpeg库,并且Go编译器和构建工具已正确配置。此外,还需要确保您的Go代码与静态链接库之间的版本兼容性。 总结起来,Go ffmpeg是一个使用Go语言编写的FFmpeg静态链接库,它提供了一种方便的方法来在Go应用程序中调用FFmpeg的功能。通过使用Go ffmpeg,您可以轻松编写跨平台的应用程序,并简化视频和音频处理操作的开发过程。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值