制作和使用Linux应用程序编程的动态库

注意,星号公众号,直接访问大内容ID:嵌入式情报局作者:情报兄弟一个动态库并使用说明在Linux中制作动态链接库只需要使用良好的GCC编译器选项就可以得到这两个,以下弟弟画了一幅画,并简要说明了以下内容:对该过程的简要说明:实际上,链接库生成过程还可以首先生成与位置无关的目标文件.o文件,然后创建并生成最终的.so动态链接。

文件。

但是,gcc可以直接使用这两个编译选项来一次生成。

2动态链接库的制作过程01准备源文件在这里,我仍然以昨天的两个模块为例来说明动态链接过程。

我不会在这里写黑板。

您可以在上一节的静态链接部分中检查源文件。

02编译并生成动态链接库。

在这里,通过-fPIC和-shared选项,可以将所有.c文件生成为libxxx.so文件。

让我们看一下这两个选项的含义: -fPIC选项PIC-Position Independent Code,即位置无关代码,即加载程序将其加载到内存中的任何位置,并且该代码可以正常运行,因此在代码中使用了相对地址,此功能非常有用适用于动态库加载位置更改。

同时,此功能还允许动态库由多个应用程序连接,而无需复制以形成多个副本,从而大大节省了内存。

>>> -shared选项此选项主要由GCC使用,以将目标文件链接到共享库中。

03使用库文件进行编译使用共享库来生成可执行文件的用法与以前的静态链接库-lxxx(其中xxx是不带lib和后缀名的.so文件)-L相似。

表示在当前文件中链接共享库。

04动态库的使用如果直接运行可执行文件“测试”,系统将提示无法打开共享文件。

这通常是因为共享库不在系统加载程序指定的路径中。

通常,加载器将在由“ / lib”,“ / usr / lib”指定的路径中搜索动态库。

缺省情况下使用LD_LIBRARY_PATH环境变量,因此如果将.so文件复制到前两个目录中,则可以执行该文件,但为了不损坏系统文件,通常使用环境变量来定义路径。

上面的兄弟直接使用export将环境变量定义设置为当前路径。

您可以通过“ echo $ xxx”查看设置的路径。

当然,您也可以使用unset删除环境变量,然后再次运行该程序以获取最后一次。

结果与静态链接库相同。

当然,这里使用最直接的环境变量设置方法。

通常,注销系统后,环境变量将消失。

稍后,弟弟将组织环境变量设置,包括如何长时间保留环境变量,例如在用户的主目录中。

配置文件或.bashrc文件配置。

3小结今天,我主要向您介绍了动态链接库的生产和使用。

下期见。

最后,以上是这次的分享。

如果您认为这篇文章不错,那么转发和阅读它也是我们不断更新的动力。

猜猜您喜欢它:静态链接和动态链接补充(Linux)采访者:如何在Linux下编译C程序? 1024G嵌入式资源正在销售!包括但不限于C / C ++,MCU,Linux等。

在官方帐户聊天界面中回复1024,您可以免费获得它!免责声明:本文内容经21ic授权后发布,版权归原作者所有。

该平台仅提供信息存储服务。

本文仅代表作者的个人观点,并不代表该平台的立场。

如有任何疑问,请与我们联系,谢谢!

联系方式

KAMAYA(日本釜屋电机株式会社)成立于1957年10月15日,总部在日本的北海道,是一家国际知名的电子元件生产商,同其他日系企业一样,KAMAYA特别注重品质和客户的服务,在全世界范围内都设有工厂和分部。华科(华新科技股份有限公司)收购但独立运营。

查看详情

在线咨询