`
kongweile
  • 浏览: 517470 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论

给共享库so指定soname,soname的用途

 
阅读更多

在生成共享库的时候,我们可以指定它的soname.通过 -Wl,-soname=libxxx.so.x 设置该共享库的soname.如果我们没有设置它的soname,则默认为该共享库的文件名.

在成功编译一个程序后,相应库的soname已经写在该程序里,在程序运行前会根据这些soname去搜索文件名和soname相等的库,进行连接并运行.

分享到:
评论

相关推荐

    Linux共享库版本化

    3. **编译旧库**:编译旧库时,通过`-shared`, `-fPIC`等选项生成动态库,并使用`--soname`设置库的SONAME(共享对象名称),如`libfoo.so`。`-Wl,--version-script`选项指定版本脚本,定义导出的符号。例如,`1.ver...

    linux静态库和共享库.pdf

    动态库的构建则需要`gcc`加上特定参数,如`-fPIC`(Position Independent Code)和`-shared`,以及`-Wl,-soname`来指定库的软链接名称。 在Linux系统中,库文件通常存放在`/usr/lib`或`/lib`目录下。静态库以`...

    在Delphi for Linux中应用共享对象库.pdf

    * 使用soname指令指定SO库文件的名称 * 使用-version指令指定SO库文件的版本号 六、使用前的Linux系统设置 在使用SO库文件之前,需要进行一些Linux系统设置,包括: * 设置环境变量LD_LIBRARY_PATH * 设置系统库...

    静态库、共享库、动态库的创建和使用.txt

    动态库(Dynamic Library),也称为共享库(Shared Library),其文件扩展名通常为`.so`。这类库不会在程序链接时直接被嵌入到最终的可执行文件中,而是在程序运行时由动态链接器按需加载。这种方式可以实现多个程序...

    shm共享内存 - 动态链接库

    `.so`文件就是共享库的实例,其版本信息通常通过 SONAME(Shared Object NAME)字段来管理,例如`libfoo.so.1.0.0`。 共享内存和动态链接库在系统设计和优化中起着关键作用。例如,当需要快速交换大量数据时,使用...

    Linux下C语言函数库概述.pdf

    这里的`-shared`标志告诉编译器创建一个共享对象,`-Wl,-soname`用于设置库的SONAME(用于链接的库名称),`-o`指定输出的库文件名。 在编写使用这些库的程序时,可以通过`#include`指令引入头文件,并在编译时指定...

    linux下生成so文件并且调用so文件的方法

    在Linux环境下,生成和调用共享库(SO文件,即Shared Object)是常见的软件开发实践。SO文件允许多个程序共享同一段代码,节省内存并提高系统效率。下面将详细介绍如何生成SO文件以及如何在应用程序中调用它们。 一...

    Linux平台下创建和使用用户函数库.pdf

    例如,要生成一个名为 libmy.so 的共享库,可以使用以下命令:gcc -shared -fPIC -Wl,-soname,libmy -o libmy.so mysource.c 在 Linux 平台下,可以使用 Gcc 命令来创建函数库,并将其存放在特定的目录下。例如,...

    为什么ldconfig后,会自动生成so的软链接 ldconfig就会生成librudp.so软连接

    在Linux系统中,动态链接库(Dynamic Link Libraries,简称`so`)是程序运行时所需的共享库文件。这些库文件提供了程序执行时需要的函数和数据,而不是在编译时直接嵌入到可执行文件中。`ldconfig`是Linux系统中的一...

    dll-so-libload-master.zip dll-so-libload-master.zip

    在软件开发领域,动态链接库(DLL)和共享对象库(SO)是两种重要的资源,它们允许程序在运行时动态地加载和使用功能模块。"dll-so-libload-master.zip" 文件集合可能是一个关于如何在不同操作系统上管理这些库的...

    linux动态链接库的开发实例

    在Linux系统中,动态链接库(Dynamic Linking Library,通常以`.so`为后缀)是一种重要的编程资源,它允许多个程序共享同一份代码,从而节省内存并方便代码维护。本教程将通过一个实例深入探讨Linux下C/C++语言如何...

    Linux动态库连接

    - `soname`:动态库的实际名字,如 `libmylib.so.1`,其中 `1` 是版本号。 - `symlink`:例如 `libmylib.so` 是指向 `libmylib.so.1` 的符号链接,方便应用程序链接和更新。 3. **动态库的查找机制** - `LD_...

    Linux下C++动态库

    在Linux系统中,C++动态库(也称为共享对象或.so文件)是程序运行时可以加载和使用的代码库。它们允许多个程序共享同一份代码,从而节省内存并简化软件维护。下面将详细介绍如何创建、使用和管理Linux下的C++动态库...

    Linux系统下动态连接库的创建和使用.pdf

    3. **连接生成动态连接库**:接下来,使用`gcc`连接目标文件,添加`-shared`选项指定创建动态库,并通过`-Wl,-soname`选项设置库的名称。例如: ``` gcc myfun.o -o libmyfun.so -shared -Wl,-soname,libmyfun.so ...

    linux静态库和动态库分析

    例如,`gcc -fPIC -c *.c`编译源文件,`gcc -shared -Wl,-soname,libfoo.so.1 -o libfoo.so.1.0 *.o`则生成动态库。 库的存在极大地提高了软件开发的效率,因为开发者可以复用他人已经编写并测试过的成熟代码,而...

    libsrc.rar_linux 动态库

    5. **设置版本号**:动态库通常有版本号,通过`-Wl,-soname,libmylib.so.1`指定,然后使用`ln -s`创建软链接指向最新版本,如`ln -s libmylib.so.1.0.0 libmylib.so.1`和`ln -s libmylib.so.1 libmylib.so`。...

    静态、动态库创建

    2. **链接生成动态库**:`gcc -g -shared -Wl,-soname,liberr.so.1.0.0 -o liberr.so.1.0.0 liberr.o -lc` 这里使用`-shared`指定生成动态库,`-Wl,-soname,liberr.so.1.0.0`设置链接时的符号名称,便于版本管理。...

    mysql_http_udf

    ---将so库文件复制到共享路径下 cp libHttpClient.so /usr/lib/mysql/plugin/ ---查询当前已导入的共享方法有哪些 select * from mysql.func; ---开始创建共享方法 DROP FUNCTION IF EXISTS Http_Get; DROP FUNCTION...

    linux动态库生成

    在Linux系统中,动态库(Dynamic Library)是程序运行时加载的共享库,可以被多个程序同时使用,节省内存资源并方便代码维护。本篇将详细介绍如何在Linux环境下生成动态库,以及与C语言编程相关的知识。 首先,我们...

Global site tag (gtag.js) - Google Analytics