易截截图软件、单文件、免安装、纯绿色、仅160KB

linux 共享库基本使用[转]


linux 共享库基本使用[转]
xzq200 发表于 2007-6-16 11:02:00
0
推荐
1 创建和使用静态库
创建一个静态库是相当简单的。通常使用 ar 程序把一些目标文件(.o)组合在一起,
成为一个单独的库,然后运行 ranlib,以给库加入一些索引信息。
2 创建和使用共享库
特殊的编译和连接选项
-D_REENTRANT         使得预处理器符号 _REENTRANT 被定义,这个符号激活一些宏特性。
-fPIC                选项产生位置独立的代码。由于库是在运行的时候被调入,因此这个
                     选项是必需的,因为在编译的时候,装入内存的地址还不知道。如果
                     不使用这个选项,库文件可能不会正确运行。
-shared              选项告诉编译器产生共享库代码。
-Wl,-soname          -Wl 告诉编译器将后面的参数传递到连接器。而 -soname 指定了
                     共享库的 soname。
    # 可以把库文件拷贝到 /etc/ld.so.conf 中列举出的任何目录中,并以
root 身份运行 ldconfig;或者
    # 运行 export LD_LIBRARY_PATH='pwd',它把当前路径加到库搜索路径中去。
1.7.9  使用高级共享库特性
1. ldd 工具
ldd 用来显示执行文件需要哪些共享库, 共享库装载管理器在哪里找到了需要的共享库.
2. soname
共享库的一个非常重要的,也是非常难的概念是 soname——简写共享目标名(short for shared object name)。这是一个为共享库(.so)文件而内嵌在控制数据中的名字。如前面提到的,每一个程序都有一个需要使用的库的清单。这个清单的内容是一系列库的 soname,如同 ldd 显示的那样,共享库装载器必须找到这个清单。
soname 的关键功能是它提供了兼容性的标准。当要升级系统中的一个库时,并且新库的 soname 和老的库的 soname 一样,用旧库连接生成的程序,使用新的库依然能正常运行。这个特性使得在 Linux 下,升级使用共享库的程序和定位错误变得十分容�


相关文档:

实战Linux Bluetooth编程 (七) SDP协议

Service Discovery Protocol(SDP)提供一种能力,让应用程序有方法发现哪种服务可用以及这种服务的特性。
服务发现协议(SDP或Bluetooth SDP)在蓝牙协议栈中对蓝牙环境中的应用程序有特殊的含意,发现哪个服务是可用的和确定这些可用服务的特征。SDP定义了bluetooth client发现可用bluetooth server服务和它们的特征的方法。 ......

Linux 温故而知新 常用操作

记录常用操作:
文件及文件夹相关
=======================================================================
文件操作(rm);
文件夹操作(rmdir 删除空文件,rm -rf 目录名删除非空文件夹);
文件移动:mv cp都可以;
解压缩:tar 
格式: tar 选项 文件目录列表 
功能: 对文件目 ......

生产者 消费者问题实现 (linux下C语言)

操作系统的一个经典问题是"生产者-消费者"问题, 这涉及同步信号量和互斥信号量的应用, 在这里,我用线程的同步和互斥来实现.
#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>
#include <pthread.h>
#include <semaphore.h>
#define N 2   // 消费者� ......

Linux的启动步骤


Load Bios
Read MBR's config to find out the os
Load the kernel of the os
init Process starts
execute /etc/rc.d /sysinit
start other modules (etc/modules.conf)
execute the run level scripts
execute /etc/rc.d/rc.local
execute /bin/login
shell started
......

RHCE——RH033之linux下的打印机

 
system-config-printer        图形界面设置打印机
 
 
BSD(FreeBSD)/System V
 
lpr/lp  打印文件名           打印
lpr  -P打印机名  打印文件名 
lp &nb ......
© 2009 ej38.com All Rights Reserved. 关于E健网联系我们 | 站点地图 | 赣ICP备09004571号