免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 5468 | 回复: 8
打印 上一主题 下一主题

Linux下如何把一些子程序编译成库文件? [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2003-12-30 12:43 |只看该作者 |倒序浏览
比如类似系统的libmath.a的文件?
多谢!

论坛徽章:
0
2 [报告]
发表于 2003-12-30 12:45 |只看该作者

Linux下如何把一些子程序编译成库文件?

那你编译成.a或.so的库文件好了。

论坛徽章:
0
3 [报告]
发表于 2003-12-30 13:34 |只看该作者

Linux下如何把一些子程序编译成库文件?

问题是怎么编译成.a或者.so的库文件?多谢!

论坛徽章:
0
4 [报告]
发表于 2003-12-30 13:56 |只看该作者

Linux下如何把一些子程序编译成库文件?

man ar

论坛徽章:
0
5 [报告]
发表于 2003-12-30 14:42 |只看该作者

Linux下如何把一些子程序编译成库文件?

makefile 中,也可以直接把源文件编译成库, so 等文件

论坛徽章:
0
6 [报告]
发表于 2003-12-30 15:38 |只看该作者

Linux下如何把一些子程序编译成库文件?

ar rcs libxxx.a 1.o 2.o 3.o
gcc -shared -Wl,-soname,libxxx.so -o libxxx.1.0.1.so xx.o

论坛徽章:
0
7 [报告]
发表于 2003-12-30 21:21 |只看该作者

Linux下如何把一些子程序编译成库文件?

Unix下 你应该要用到Makefile吧

-G选项   你编译后的就是一个module  .so (windows下的叫法是动态库 .dll)  
-g  -G一起用你就可以用gdb进行调试跟踪了

就是这么简单   

论坛徽章:
0
8 [报告]
发表于 2003-12-31 08:37 |只看该作者

Linux下如何把一些子程序编译成库文件?

有一个问题,我需要在调用的程序里面声明函数吗?
例如:
文件1 tsum.c
float tsum(float a,float b){
   return a+b;
}
文件2 tsub.c
float tsub(float a,float b){
   return a-b;
}
文件3: main.c
#include <stdio.h>;
float tsum(float,float); //我需要在这儿申明函数形式吗?
int main(){

  printf("3+2=%f\n",tsum(3.0,2.0));
  printf("3-2=%f\n",tsub(3.0,2.0));
}

编译过程:
gcc -c tsum.c; gcc -c tsub.c
ar rcs libtt.a *.o
gcc a.c libtt.a  //可以,但需要申明函数
gcc -L/当前目录 -ltt  main.c  // 找到函数tsum tsub的定义,为什么?
可用gcc 调用数学函数并不需要申明函数形式。 多谢!!

论坛徽章:
1
荣誉版主
日期:2011-11-23 16:44:17
9 [报告]
发表于 2003-12-31 09:54 |只看该作者

Linux下如何把一些子程序编译成库文件?

原帖由 "idle2q" 发表:
有一个问题,我需要在调用的程序里面声明函数吗?
例如:
文件1 tsum.c
float tsum(float a,float b){
   return a+b;
}
文件2 tsub.c
float tsub(float a,float b){
   return a-b;
}
文件3: main.c
#i..........

那是因为你#include <math.h>;
数学函数的原型就放在这里面。
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP