您的位置:程序门 -> linux/unix社区 -> 程序开发区



linux调用库函数


[收藏此页] [打印本页]选择字色:背景色:字体:[][][]


linux调用库函数[已结贴,结贴人:firefox_zhou]
发表于:2007-03-09 21:24:35 楼主
本人要在linux下用osip协议栈开发一个uas,下载了libosip2-3.0.1,可不知道怎么把这个编译为库函数然后加到自己的程序中,请高手赐教
谢谢!
发表于:2007-03-09 21:49:581楼 得分:5
库搞成so动态链接库形式,然后指明库路径,就可以调用了   export   ld_library_path=???
发表于:2007-03-09 22:05:272楼 得分:0
我看了网上说的生成和使用库的方法
#   gcc   -c   hello.c  
#   ar   cr   libmyhello.a   hello.o  
#   gcc   -o   hello   main.c   -l.   -lmyhello  
#   ./hello  
hello   everyone!  

这里我有一个地方不明白,就是如果我有很多的.c文件和.h文件,是不是要将每个.c文件编译为.o文件,然后将所有的.o文件加到一个库里
发表于:2007-03-11 21:03:283楼 得分:0
没人回答吗???
发表于:2007-03-12 10:47:164楼 得分:5
是的。
比如你有   hello1.c,   hello2.c   ,   hello3.c
他们编译后,生成   hello1.o   ,   hello2.o   ,   hello3.o
#ar   cr   libmyhello.a   hello1.o   hello2.o   hello3.o
然后链接使用就可以了
#gcc   -o   hello   main.c   -l.   -lmyhello
发表于:2007-03-12 11:31:115楼 得分:0
mark..........
发表于:2007-03-12 14:55:166楼 得分:0
mark
发表于:2007-03-13 20:26:447楼 得分:0
像osip协议栈(libosip2-3.0.1)是一个整体,有没有方便一点方法直接把整个编译为一个库文件吗
发表于:2007-03-13 21:23:468楼 得分:0
如果libosip2-3.0.1是一组文件,能make的话,用make   install应该会生成库
发表于:2007-03-15 20:07:179楼 得分:0
我把libosip2-3.0.1通过./configure   make   make   install   后动态库文件安装在/usr/local/lib,可调用的时候显示no   such   file...     是不是动态库只有在/usr/lib时系统才会自动去调用???
发表于:2007-03-16 16:25:4410楼 得分:0
动态库文件如果不放在/usr/lib下,在其他目录下,如/usr/local/lib
该如何使用?
谢谢
发表于:2007-03-18 18:19:0611楼 得分:0
那你编译时:   -l/usr/local/lib/
发表于:2007-03-18 20:34:5512楼 得分:10
./configure   --prefix=path
这个时候可以指定你的库install在path路径下。

在使用这个库的时候,如果不在/usr/lib   的话.
在编译的时候:
gcc   -l/path   -lxxx.so  
运行的时候可以修改环境变量ld_library_path.也可以修改/etc/ld.so.con文件来指定库的路径。


快速检索

最新资讯
热门点击