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

linux 编程之库的使用(学习笔记)

1.库概述
库可以分为静态库和动态库,静态库编译时必须存在,程序运行时不需要。
动态库也称共享库,其代码不会链接到目标文件之中,只有当动态库可访问时,应用程序才能正确地执行动态库函数。执行动态库有两种方式:隐式调用和显示调用。隐式调用也称共享库的静态加载,动态库函数在应用程序开始执行时会自动载入内存,进程结束时又自动卸载。编译方式与静态库一致。显示调用也称共享库的动态加载,调用时必须遵守dlopen等函数的规则实现调用。
 
在Unix中,使用ar命令可以创建或操作静态库,其格式为:
ar [drqtpmx] [option] archivefile objfile ….
参数
意义
-r
将objfile文件插入静态库尾或替换静态库中同名文件
-x
从静态库文件中抽取文件objfile
-t
打印静态库的成员文件列表
-d
从静态库文件中删除文件objfile
-s
重置静态库文件索引
-v
创建文件冗余信息
-c
创建静态库文件
 
例子:抽取静态库/usr/lib/lic.a中的文件
# ar –x /usr/lib/libc.a
例子:组织文件xcvt.o和xstat.o创建静态库libccc.a。
# ar –r libccc.a xcvt.o xstat.o
 
2. 静态库编程
2.1 设计库源码
/******pr1.c*****/
void pirnt1()
{
       printf(“this is the first lib src\n”);
}
/*******pr2.c***********/
void print2()
{
       printf(“this is the second lib src\n”);
}
 
2.2. 编译生成库文件
gcc –O –c pr1.c pr2.c
分别产生pr1.o, pr2.o文件
链接静态库
ar –rsv libpr.a pr1.o pr2.o
2.3 测试程序源码
/********main.c************/
int main()
{
       print1();
       print2();
}
2.4 编译运行
gcc –O –o main main.c –L./ -lpr
 
3. 动态库编程
3.1 库源码
/*******pr1.c********/
int p=2;
void print()
{
       printf(“This is the first dll src!\n”);
}
/*******pr2.c*********/
int p = 3;
void print()
{
       printf(“This is the second dll src!\n”);
}
 
3.2 编译生成动态库
gcc –O –fpic –shared &n


相关文档:

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

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

Linux下移植jvm的过程

转自:http://hi.baidu.com/deep_pro/blog/item/b4253550bb5ab7561138c27a.html
这里转载的是Linux下移植jvm的过程,因为仅仅是CDC
J2ME CDC(Connected Device Configuration,连接式设备配置集)
使用CVM,面向那些具有更强计算能力的嵌入式设备,包含了Java类库的核心部分,是应用Java技术在嵌入式设备上进行开发所需 ......

linux 录音放音程序(从网上找来的)

/*
  Name: SndKit.c
  Copyright: GPLv2
  Author: rockins(ybc2084@163.com)
  Date: 15-10-06 18:22
  Description: implent raw sound record/play
  run: ./SndKit [-h] [-d device] [-c channel] [-b bits] [-f hz] [-l len] <-r|-p file>
  e.g.:
  ./SndKit ......

Linux 下编译并安装配置 Qt 全过程

Linux 下编译并安装配置 Qt 全过程
        最近准备做 Nokia 的 Symbian,Maemo 下触摸屏开发。考虑到程序的跨平台可移植性,最终选择使用 Qt 开发。相对来说,国内关于 Qt 相关文档并不算很多。作者将 Linux 下编译并安装配置 Qt 全过程总结了一下,只希望可以方便更多的朋友!
&nbs ......

linux在线扩展文件系统空间

author:skate
time:2009/12/04
 linux在线扩展文件系统空间
ext2resize是一款可以增大/减小ext2/ext3文件系统的工具,安装后有2个命令ext2resize和ext2online,ext2resize命令
必须要在卸载文件系统的情况下才能使用,ext2online可以实现在线重设文件系统大小。
下面就演示具体的操作,这是我们研发用的测试服务 ......
© 2009 ej38.com All Rights Reserved. 关于E健网联系我们 | 站点地图 | 赣ICP备09004571号