Your Ad Here
首页 | 编程语言 | 网站建设 | 游戏天堂 | 冲浪宝典 | 网络安全 | 操作系统 | 软件时空 | 硬件指南 | 病毒相关 | IT 认证
软讯网络 > 操作系统 > Linux > linux下如何生成,使用静态和动态链接库
【标  题】:linux下如何生成,使用静态和动态链接库
【关键字】:linux
【来  源】:http://www.cublog.cn/u/17788/showart.php?id=102339

linux下如何生成,使用静态和动态链接库

Your Ad Here
//文件h.h
#ifndef _h_h_
#define _h_h_
void myprint();
#endif
//文件h.c
#include<stdio.h>
void myprint()
{
     printf("o,my sweety!\n");
}

//文件test.c
#include"h.h"   //表示先在当前目录下找该头文件,若没有再在系统指定的目录下找
#include<stdio.h>   //直接在系统指定的目录下找该头文件
int main()
{
    myprint();
    exit(0);
}

1.生成静态链接库
gcc -c h.c -o h.o
ar cqs libh.a h.o  
//ar是生成库的命令,cqs是参数,libh.a是生成的静态链接库须以lib开头,h是库名,a表示是静态链接库,h.o是刚才生成目标文件
2.生成动态链接库
gcc -c h.c -o h.o
生成动态链接库用gcc来完成
gcc -shared -WI -o libh.so  h.o
//-shared -WI是参数,libh.so是生成的静态链接库须以lib开头,h是库名,so表示是动态链接库,h.o是刚才生成目标文件
3.将生成的libh.a,libh.so拷贝到/usr/lib或/lib下
4.编译带静态链接库的程序
gcc -c test.c -o test.o
gcc test.o -o test -WI -Bstatic -lh
//-WI -Bstatic表示链接静态库,-lh中-l表示链接,h是库名即/usr/lib下的libh.a
5.编译带动态链接库的程序
gcc -c test.c -o test.o
gcc test.o -o test  -WI -Bdynamic -lh
//-WI -Bdynamic表示链接动态库,-lh中-l表示链接,h是库名即/usr/lib下的libh.so
6.运行./test得到结果
7.其他知识
有些库形如libh.so.1.0,1.0表示版本号.若要使用该库,通常要建立一个软连接,用ln -s libh.so.1.0 libh.so.系统不知道1.0为何意思。
编译连接时同时要用动态和静态链接库,则用如下命令
gcc test.o -o test -WI -Bstatic -lh1 -WI -Bdynamic -lh2
集群的可靠性测试:【上一篇】
使用Smaba共享资源:【下一篇】
【相关文章】
  • 转:Linux赋予普通用户的特殊权限
  • Linux 内核使用的 GNU C 扩展(转贴自linuxforum)
  • linux 内核与用户空间通信之netlink使用方法(非原创,为转载)
  • 使用SSH建立基于Linux/Unix的VPN网络
  • linux内核编译步骤(1)
  • 甲骨文拟推出LINUX操作系统
  • 在THIZLINUX 7.0下安装qmail成功文章
  • LINUX下用squid+iptable做透明代理
  • 让redhat linux as3 支持 reiserfs
  • ×××公司的linux内核驱动开发笔试题(俺的第三次面试,^_^)
  • 【随机文章】
  • ldap samba实现windows域管理
  • vs2005入门--准备工作
  • 动网论坛上传文件漏洞的原理以及攻击的代码实现(1)
  • uml 视图
  • [转]SOA须应时而动 IBM专家解析中间件之道
  • 常用的几个Linux命令
  • Screen
  • 惠普创新网络架构 推四款新品提高安全性能
  • 透过ASP修改NT使用者的密码
  • Postfix中需要注意的几个规则(发信者的身份验证)
  • 【相关评论】
    没有相关评论
    【发表评论】
    姓名:
    邮件:
    随机码*
    评论*
          
    |  首 页  |  版权声明  |  联系我们   |  网站地图  |
    CopyRight © 2004-2007 bbb软讯网络 All Rigths Reserved.