`
mypyg
  • 浏览: 545324 次
  • 性别: Icon_minigender_1
  • 来自: 成都
社区版块
存档分类
最新评论

动态库的soname

 
阅读更多
-Wl,-soname -Wl 告诉编译器将后面的参数传递到连接器。而 -soname 指定了
共享库的 soname

这个soname的存在是为了兼容方便。

比如:
    有一个程序ap1,以及一个库libtest.so.1
    ap1启动的时候需要libtest.so.1
    如果链接的时候直接把libtest.so.1传给了ap1,那么将来库升级为libtest.so.2的时候,ap1仍然只能使用 libtest.so.1的代码,并不能得到升级的好处。而如果指定了soname为libtest.so,那么ap1启动的时候将查找的就是 libtest.so而不是其在被链接时实际使用的库libtest.so.1这个文件名。
    在开始时我们建立一个链接:ln -sf libtest.so.1 libtest.so
    而在库升级后,我们重新:ln -sf libtest.so.2 libtest.so即可,这样ap1不需要任何变动就能享受升级后的库的特性了。而libtest.so.1,libtest.so.2可以同时存在于系统内,不必非得把libtest.so.2的名字改成libtest.so.1
分享到:
评论

相关推荐

    Linux下动态库的生成和使用

    动态库的基本概念  1. 动态链接库是程序运行时加载的库,当动态链接库正确安装后,所有的程序都可以使用动态库来运行程序。动态链接库是目标文件的集合,目标文件在动态链接库中的组织方式是按照特殊方式形成的。...

    Linux编程动态库知识

    暂时添加动态库目录LD_LIBRARY_PATH,一般用于测试和开发  4.LD_PRELOAD预加载库。用于提前加载,紧急用途,或是特殊的测试情况  5.创建动态库  gcc -fPIC -shared -Wl,-soname, your_soname -o library_...

    mysql_http_udf

    ---查询当前共享库文件存放路径 show variables like 'plugin_dir'; ---将so库文件复制到共享路径下 cp libHttpClient.so /usr/lib/mysql/plugin/ ---查询当前已导入的共享方法有哪些 select * from mysql.func; ---...

    MySql5.6使用validate password 插件加强密码强度的安装及使用方法

    安装办法: 在配置文件中打开 [mysqld] plugin-load=validate_...mysql>>INSTALL PLUGIN validate_password SONAME 'validate_password.so'; 即可。 当建立用户密码时,如果不符合预设的规则,那么就不会通过: m

    给mysql增加自定义函数(UDF),基于雪花算法生成分布式ID

    CREATE FUNCTION `SNOWFLAKE` RETURNS INT SONAME 'snowflake.dll'; SELECT SNOWFLAKE(0); 即可,亲测mysql5.7以及以上版本,windows和linux都可以使用。 另外,压缩包内附上qt的编译工程,方便在windows下自己修改...

    mysql 解析json字符串

    CREATE FUNCTION json_get RETURNS STRING SONAME 'lib_mysqludf_json_parsing.dll'; 使用方法 SELECT json_get('{"a":1}', 'a') => 1 SELECT json_get('{"a":1}', 'b') => NULL SELECT json_get('[1,2,3]', 2) => ...

    mysql_udf_bundle:MySQL UDF的随机集合

    mysql_udf_bundle MySQL UDF的随机集合 要安装(假设使用Ubuntu等): apt-get install libmysqlclient-dev g++ cmake make sudo make install ...create function word_count returns int soname 'libword_

    shellspace:迈向 VR 桌面操作系统的一小步

    壳空间 这是 Shellspace 的源代码库,我进入 Oculus VR Jam 2015。 它是一个典型的 VR 桌面环境,从 VNC 客户端开始并从那里发展。 建造 获取源代码后,在GearVR/bin/android_dev.sh... -Wl,-soname,$(notdir $(LOCAL

    MySQLiExec:mssql's cmdexec-like for mysql, 在利用 mysql 服务器上的 sql 注入时很有用

    说明:将编译好的库写入mysql的plugins目录并加载,可以像mssql的cmdexec一样运行shell命令编译示例: gcc -fPIC -Wall -I/usr/include/mysql -shared -o sqliexec.so sqliexec.c // on ubuntu with installed ...

    airom-system:带有Django webframework和Mariadb数据库的应用程序

    空气系统带有Django Webframework和MariaDB数据库的Python 3.7应用程序安装python库点安装-r requirements.txt安装和配置MariaDB 用户:root 密码:pass 安装SONAME'ha_connect';在Django模型中创建表或从数据库导入...

    redis-udf:mysql的udf用于redis

    redis-udf mysql的udf用于redis gcc -fPIC -Wall -I / usr / include / mysql / -I / ...创建函数redis返回字符串soname'redis.so';”) 如何: mysql>选择redis(“ info”); mysql>选择redis(“ set foo bar”);

    MySQL 8.0.18使用clone plugin重建MGR的实现

    假设三节点MGR某个节点异常,需要重新把这个节点加入到MGR集群中,具体操作过程如下: 贡献者端执行(192.168.1.11) DROP USER 'donor_clone_user'@'...INSTALL PLUGIN clone SONAME 'mysql_clone.so'; 接收者端执

    mysql_udf:MySQL的udf evalcmd

    mysql_udf mysql udf eval/cmd shell 只适用于MySQL > 5.1 ...>create function sys_eval returns string soname 'udf.dll'; //创建函数 >select sys_eval(cmd); //执行命令 可能遇到的问题 errno 2

    udf dell源码 usl免杀源码

    创建函数:create function 函数名(区分大小写) returns string soname 'dll名' (注意路径); 删除函数:delete function 函数名; 使用函数:select 函数名(参数列表);获取参数信息可使用select 函数名("help"); -------...

    mysql-plugin-proc-vars:mysql信息插件显示每个进程的所有变量

    mysql-plugin-proc-vars mysql 信息模式插件,用于显示 mysql 5.5+ 的每个进程的所有变量用法首先,编译插件并安装到插件... 然后,将插件加载到 mysql mysql> INSTALL PLUGIN PROCESS_VARIABLES SONAME 'proc_vars.so

    mysql-plugin-disable-myisam:MySQL插件禁止创建MYISAM表

    MySQL的插件禁用myisam MySQL插件禁止创建MYISAM表。 用法 首先,编译插件并安装到插件目录 cp -r src /path/to/mysql... mysql> INSTALL PLUGIN DISABLE_MYISAM SONAME 'disable_myisam.so'; 无法立即创建MYISAM表。

    udf_pthread_name:UDF 从 MySQL 中设置 pthread 名称

    安装 $ gcc -o udf_pthread_name.so udf_pthread_name.c `mysql_config --include` -shared -fPIC -lpthreadmysql> CREATE FUNCTION pthread_name RETURNS INTEGER SONAME 'udf_pthread_name.so';例子 mysql> SELECT...

    udf_cgroup:使用此UDF将mysql线程移至cgroup

    安装 $ gcc -o udf_cgroup.so udf_cgroup.c `/mysql_config --include` -shared -fPIC -lcgroupmysql> CREATE FUNCTION set_cgroup RETURNS STRING soname 'udf_cgroup.so';例子 mysql> SELECT set_cgroup('/mysql',...

    mariadb-webinar-2015-03:MariaDB 网络研讨会的示例

    MariaDB 网络研讨会示例MariaDB 网络研讨会的示例,由 Ibuildings 组织,由 Federico Razzoli 于 2015 年 ... 安装连接: 安装 SONAME 'ha_connect'; 您可以从命令行客户端 (mysql) 或您喜欢的任何其他客户端运行示例。

Global site tag (gtag.js) - Google Analytics