我们从2011年坚守至今,只想做存粹的技术论坛。  由于网站在外面,点击附件后要很长世间才弹出下载,请耐心等待,勿重复点击不要用Edge和IE浏览器下载,否则提示不安全下载不了

 找回密码
 立即注册
搜索
查看: 489|回复: 0

一个比较简单的Linux下制作静态库的例子 - 软件编程/OS - 电

[复制链接]

该用户从未签到

1万

主题

1292

回帖

936

积分

管理员

积分
936

社区居民最爱沙发原创达人社区明星终身成就奖优秀斑竹奖宣传大使奖特殊贡献奖

QQ
发表于 2013-3-29 10:35:39 | 显示全部楼层 |阅读模式
<i class="pstatus"> 本帖最后由 f.luo 于 2009-9-19 15:49 编辑 </i>

看书的时候发现个小例子,感觉不错。
分享一下,高手就不用来浪费时间了。
Linux下如何把自己写的函数做成静态编译库。
    这个例子中,我们创建了一个我们自己的小小的库,该库包含两个函数。而在例子中,我们使用了其中一个函数。这两个函数分别为fred和bill,作用为打印问候语。
    首先,为每一个函数各创建一个独立的源程序。建立两个C文件,分别为fred.c和bill.c简单看下面的代码。
第一个:<ol><li> <li>#include <stdio.h><li>void fred(int arg)<li> {<li>         printf(“fred: we passed %d\n”,arg);<li> }</ol><em onclick="copycode($('code_j3k'));">复制代码</em>第二个:<ol><li> <li>#include <stdio.h><li>void bill(char *arg)<li>{<li>      printf(“bill: we passed %s\n", arg);<li>}</ol><em onclick="copycode($('code_MuG'));">复制代码</em>现在可以编译这些函数。使用gcc的-c参数。编译:<ol><li>$ gcc -c bill.c fred.c<li>$ ls *.o<li>bill.o      fred.o</ol><em onclick="copycode($('code_5Md'));">复制代码</em>头文件为了便于以后调用,编写个头文件,文件名为lib.h:<ol><li>/*<li>This is lib.h. It declares the functions fred and bill for users<li>*/<li>void bill(char *);<li>void fred(int);</ol><em onclick="copycode($('code_O0s'));">复制代码</em>

好了,可以写主程序了.主程序调用函数bill()。<ol><li>#include <stdlib.h><li>#include “lib.h”<li>int main()<li>{<li>    bill(Hello World);<li>    exit(0);<li>}</ol><em onclick="copycode($('code_uz6'));">复制代码</em>用到的文件都完成了,下面主要是编译。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

论坛开启做任务可以
额外奖励金币快速赚
积分升级了


Copyright ©2011-2024 NTpcb.com All Right Reserved.  Powered by Discuz! (NTpcb)

本站信息均由会员发表,不代表NTpcb立场,如侵犯了您的权利请发帖投诉

平平安安
TOP
快速回复 返回顶部 返回列表