您的位置:首页 > 运维架构 > Linux

linux应用程序开发(第2版),创建和使用库章节中共享库的测试(摘录)

2007-09-04 15:11 573 查看
 
linux应用程序开发(第2版),创建和使用库章节中共享库的测试
linux应用程序开发(第2版)(author: Michael K. Johnson)不错,只不过翻译过程中带来一些晦涩难懂讲解,总体来说,对于我来说感觉不错。
就共享库的一个简单例子,记录一下测试过程。
1、创建一个小的共享库,库的名称为libhello,所需源文件如下:




/**//* libhello.c */




#include <stdio.h>


#include "libhello.h"




void print_hello(void)




...{


    printf("Hello, library. ");


    return;


}






/**//* libhello.h */




void print_hello(void);

用来测试库libhello的usehello程序如下:




/**//* usehello.c */




#include "libhello.h"




int main(void)




...{


    print_hello();


    return 0;


}



2、编译和测试libhello库
1)为libhello共享库构造目标文件


g
9982
cc -fPIC -Wall -g -c libhello.c

2)构建libhello库,同时使用 -lc连接到C库


gcc -shared -g -Wl,-soname,libhello.so.0 -o libhello.so.0.0 libhello.o -lc

-Wl,-soname,libname   是传给连接器的参数,注意中间没有空格,用“,”隔开
3)创建一个从libname到库文件名的符号连接


ln -sf libhello.so.0.0 libhello.so.0

4)为连接器创建一个符号连接,使得应用程序可以通过 -lhello 链接到库


ln -sf libhello.so.0 libhello.so

5)测试,构建测试程序


gcc -Wall -g -c usehello.c -o usehello.o


gcc -g -o usehello -L$(pwd) -lhello

-L$(pwd),指定指定到当前目录中搜索共享库
-lhello, 指定库,即libhello.so
6)最后运行测试程序


LD_LIBRARY_PATH=$(path) ./usehello

OK. 我们可以看到输出:


Hello, library.

原文可能印刷的原因,有点问题,在调试时注意一下,另外,要了解更多详细信息,可参阅《linux应用程序开发》第8章,以及下面的链接:
http://blog.csdn.net/sonic1984/archive/2005/11/11/527708.aspx
Trackback: http://tb.blog.csdn.net/TrackBack.aspx?PostId=1702575
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
相关文章推荐