本人想用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
出现了一堆错。。。不想看啊。。
[问题]创建自己的函数库
-
- 帖子: 18
- 注册时间: 2007-12-26 13:29
-
- 帖子: 3182
- 注册时间: 2006-03-10 15:10
- 来自: xi'an China
- 联系:
Re: [问题]创建自己的函数库
名字随便取,一般是以lib开头,因为链接时的-l能自动处理这种 libaaaa.a结构本人想用ar创建个自己的函数库,ar rs lib-name(这个是不是要以lib开头?
错了,ar只能创建静态库以.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
出现了一堆错。。。不想看啊。。
有一点可以肯定,你应该没好好看置顶的gcc新手入门,也没看相关词条C编译初步
-
- 帖子: 18
- 注册时间: 2007-12-26 13:29
-
- 帖子: 3182
- 注册时间: 2006-03-10 15:10
- 来自: xi'an China
- 联系:
记住一点,类Unix系统下面后缀名归根到底是没什么意义的,你可以试着把一个pdf文件后缀改成.so,改成.a,改成.c,去掉后缀等,不管怎么改,他都是一个标准的pdf文件,都可以被正确地打开。既然这样为什么大家为什么还要用.pdf呢。主要是兼容windows,如果你把一个pdf保存成 ***.doc,linux下面打开是没问题的,要是传给一个win用户呢?stubobo 写了:我没看过.....................我是菜鸟.只是在图书馆借了本书,看书学的。
不过我用这个命令有生成一个.so文件啊
同样,你用ar生成一个静态库 ***.a ,却给它一个动态库的名字.so,自己用应该没问题,因为我想你用的时候也是作为用静态库的语法调用的。
记住一点,后缀名是没实质意义的,比如 c 源代码可以用 .java 做后缀,gcc -xc 111.java -o hello 编译的一个标准的 C 程序,但我相信没人会这么用。
晕了:shock: ,我上面不是提到了吗?如果我想实现上面的功能,你可以贴个正确的代码给我参考一下吗?
gcc新手入门,
C编译初步
这两个都是最基本的内容,如果看不懂(当然这个前提应该不会存在的),照着走一遍总可以把。
-
- 帖子: 1
- 注册时间: 2011-08-09 16:55
Re: [问题]创建自己的函数库
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
不过这是生成静态库
生成动态库的过程:
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