当前时区为 UTC + 8 小时



发表新帖 回复这个主题  [ 5 篇帖子 ] 
作者 内容
1 楼 
 文章标题 : [问题]创建自己的函数库
帖子发表于 : 2008-04-26 9:13 

注册: 2007-12-26 13:29
帖子: 18
送出感谢: 0 次
接收感谢: 0 次
本人想用ar创建个自己的函数库,ar rs lib-name(这个是不是要以lib开头?以.so为后
缀?) list-of-files(是用.c为后缀那个文件吗?还是....)
我建的库在/*home*/Ctry中
先有
#文件名/*max3.c*/
#include <stdio.h>
int main(int a,int b,int c)
{
int min;
min=(a<=b)?(a<=c?a:c):(b<=c?b:c);
return min;
}

/*min3.c*/
#include <stdio.h>
int main (int a,int b, int c)
{
int max;
max=(a>=b)?(a>=c?a:c):(b>=c?b:c);

max=(a>=b)?(a>=c?a:c):(b>=c?b:c);
return max;
}
/*compare.c*/
#include <stdio.h>
int main()
{
int a,b,c;
int min,max;
printf("please input 3 integer: ");
scanf("%d%d%d",&a,&b,&c);
max=max3(a,b,c);
min=min3(a,b,c);
printf("the max integer is: ",max);
printf("the min integer is: ",min);

}
然后ar rs libcompare.so max3 min3
gcc -o compare -L /home/**/Ctry -lcompare compare.c
出现了一堆错。。。不想看啊。。


页首
 用户资料  
 
2 楼 
 文章标题 : Re: [问题]创建自己的函数库
帖子发表于 : 2008-04-26 9:42 

注册: 2006-03-10 15:10
帖子: 3182
地址: xi'an China
送出感谢: 0 次
接收感谢: 2
引用:
本人想用ar创建个自己的函数库,ar rs lib-name(这个是不是要以lib开头?

名字随便取,一般是以lib开头,因为链接时的-l能自动处理这种 libaaaa.a结构
引用:
以.so为后缀?)

错了,ar只能创建静态库
代码:
list-of-files(是用.c为后缀那个文件吗?还是....)

错,.c是源代码,必须先用编译器编译成 .o文件

引用:
我建的库在/*home*/Ctry中
先有
#文件名/*max3.c*/
#include <stdio.h>
int main(int a,int b,int c)
{
int min;
min=(a<=b)?(a<=c?a:c):(b<=c?b:c);
return min;
}

/*min3.c*/
#include <stdio.h>
int main (int a,int b, int c)
{
int max;
max=(a>=b)?(a>=c?a:c):(b>=c?b:c);

max=(a>=b)?(a>=c?a:c):(b>=c?b:c);

return max;
}
/*compare.c*/
#include <stdio.h>
int main()
{
int a,b,c;
int min,max;
printf("please input 3 integer: ");
scanf("%d%d%d",&a,&b,&c);
max=max3(a,b,c);
min=min3(a,b,c);
printf("the max integer is: ",max);
printf("the min integer is: ",min);

}
然后ar rs libcompare.so max3 min3
gcc -o compare -L /home/**/Ctry -lcompare compare.c
出现了一堆错。。。不想看啊。。

我不清楚这是不是你发帖时的笔误,但愿是吧。

有一点可以肯定,你应该没好好看置顶的gcc新手入门,也没看相关词条C编译初步


页首
 用户资料  
 
3 楼 
 文章标题 :
帖子发表于 : 2008-04-29 11:26 

注册: 2007-12-26 13:29
帖子: 18
送出感谢: 0 次
接收感谢: 0 次
我没看过.....................我是菜鸟.只是在图书馆借了本书,看书学的。
不过我用这个命令有生成一个.so文件啊
如果我想实现上面的功能,你可以贴个正确的代码给我参考一下吗?


页首
 用户资料  
 
4 楼 
 文章标题 :
帖子发表于 : 2008-04-29 11:37 

注册: 2006-03-10 15:10
帖子: 3182
地址: xi'an China
送出感谢: 0 次
接收感谢: 2
stubobo 写道:
我没看过.....................我是菜鸟.只是在图书馆借了本书,看书学的。
不过我用这个命令有生成一个.so文件啊


记住一点,类Unix系统下面后缀名归根到底是没什么意义的,你可以试着把一个pdf文件后缀改成.so,改成.a,改成.c,去掉后缀等,不管怎么改,他都是一个标准的pdf文件,都可以被正确地打开。既然这样为什么大家为什么还要用.pdf呢。主要是兼容windows,如果你把一个pdf保存成 ***.doc,linux下面打开是没问题的,要是传给一个win用户呢?

同样,你用ar生成一个静态库 ***.a ,却给它一个动态库的名字.so,自己用应该没问题,因为我想你用的时候也是作为用静态库的语法调用的。

记住一点,后缀名是没实质意义的,比如 c 源代码可以用 .java 做后缀,gcc -xc 111.java -o hello 编译的一个标准的 C 程序,但我相信没人会这么用。

引用:
如果我想实现上面的功能,你可以贴个正确的代码给我参考一下吗?

晕了:shock: ,我上面不是提到了吗?
gcc新手入门
C编译初步

这两个都是最基本的内容,如果看不懂(当然这个前提应该不会存在的),照着走一遍总可以把。


页首
 用户资料  
 
5 楼 
 文章标题 : Re: [问题]创建自己的函数库
帖子发表于 : 2011-08-09 17:01 

注册: 2011-08-09 16:55
帖子: 1
送出感谢: 0 次
接收感谢: 0 次
ar -cr libtest.a test1.o test2.o
不过这是生成静态库
生成动态库的过程:
gcc -o test1.o test1.c -fpic
gcc -o test2.o test2.c -fpic

gcc -o libtest.so test1.o test2.o -shared -fpic

gcc -o app main.c -L. -l test


页首
 用户资料  
 
显示帖子 :  排序  
发表新帖 回复这个主题  [ 5 篇帖子 ] 

当前时区为 UTC + 8 小时


在线用户

正在浏览此版面的用户:没有注册用户 和 1 位游客


不能 在这个版面发表主题
不能 在这个版面回复主题
不能 在这个版面编辑帖子
不能 在这个版面删除帖子
不能 在这个版面提交附件

前往 :  
本站点为公益性站点,用于推广开源自由软件,由 DiaHosting VPSBudgetVM VPS 提供服务。
我们认为:软件应可免费取得,软件工具在各种语言环境下皆可使用,且不会有任何功能上的差异;
人们应有定制和修改软件的自由,且方式不受限制,只要他们自认为合适。

Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
简体中文语系由 王笑宇 翻译