linux下使用自定义库函数[linuxc]

linux下使用自定义库函数[linuxc]

ID:8806219

大小:13.02 KB

页数:2页

时间:2018-04-08

linux下使用自定义库函数[linuxc]_第1页
linux下使用自定义库函数[linuxc]_第2页
资源描述:

《linux下使用自定义库函数[linuxc]》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库

1、在linux的c语言编程中,我们经常会使用系统定义的静态库(.a)和动态库(.so),比如我们要使用数学函数sin,那么就需要在连接的时候用-lm来指名要使用的库,比如$gcc-ofactfact.c-lm这里,我们用-lm来表示要链接库函数/usr/lib/libm.a这个静态库。系统库一般在/lib,/usr/lib目录下面。如果使用的是系统库函数,那么就不需要指定路径,但是如果是我们自己的库函数就需要用-L参数指名路径。下面我们用一个例子来说明:/*fred.c*/#includevoidfred(intar

2、g){printf("fred:youpassed%d",arg);}/*bill.c*/voidbill(char*arg){printf("bill:youpassed%s",arg);}我们分别写一个答应字符串和整形数的函数在两个文件中,然后为它们写一个头文件以方便我们使用:/*lib.h*/voidfred(int);voidbill(char*);用gcc将这两个文件分别编译出来:$gcc-cfred.cbill.c-c参数表示编译(compile),只生成对应的.o文件。下面我们应用这两个函数:

3、/*program.c*/#include"lib.h"intmain(){fred(7);bill("Hello,linuxc.");exit(0);}好,我们现在编译并连接它:$gcc-cprogram.c$gcc-oprogramprogram.ofred.obill.o$./program你就会看到输出:fred:youpassed7bill:youpassedHello,linuxc.当然,这里我们是直接编译的,没有使用库。我们可以用ar命令来把fred.o和bill.o制作成.a静态库。$arcrvli

4、bfoo.abill.ofred.o为了在不同版本的linux下兼容,我们还需要为它制作一个入口表,当然这不是必须的,因为现在的许多linux并不需要这一步,但是我们加上去也并无害处:$ranliblibfoo.a下面我们就可以使用自己制作的静态链接库了:$gcc-oprogramprogram.o-L.-lfoo$./program这里面-L.表示我们链接的时候要用到本地目录(.)下的库函数,-lfoo表示库函数是libfoo.a或者是libfoo.so注:以上例子来自于linux程序设计第三版,如果想了解更多的

5、内容,你可以参考这本书。

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。