实验1 生成静态库文件

来源:互联网 发布:单片机小制作 编辑:程序博客网 时间:2024/06/05 15:06
linux系统中,头文件位于/usr/include目录及其子目录中gcc -I/usr/openwin/include fred.c I标志可以指定编译器不仅在标准位置找头文件,也在非标准位置(/usr/openwin/include)找头文件 grep EXIT_ *.h.h文件中搜索 EXIT_字符串linux 中库文件总是以lib开头,它的类型分为两种,.a 代表传统静态函数库,.so 代表共享函数库gcc -o fred fred.c /usr/lib/libm.a 这条命令的意思就是编译器编译文件fred.c 将编译产生文件命名为fred,除了搜索标准c函数库,还搜索数学库你也可以用l 来解决gcc -o fred fred.c -lm  lm代表 标准库下 名称libm.a的函数库下面编译静态库的例子说明:创建两个文件fred.c bill.cfrec.c:#include<stdio.h>void red(int arg){    printf("fred:we passed %d\n",arg);}第二个文件#include<stdio.h>void bill(char *arg){    printf("bill: we passed %s\n",arg);}gcc -c bill.c fred.c  编译这两个文件生成目标文件  -c 不生成执行程序ls *.o 查看生成的.o文件现在写一个头文件 lib.h 声明这两个函数void bill(char*);void fred(int);写一个调用程序program.c#include<stdlib.h>#include"lib.h"int main(){    bill("hello world");    exit(0);}现在可以生成可执行程序gcc -c program.cgcc -o program prgoram.o bill.o./program现在生成静态库文件ar crv libfoo.a bill.o fred.oranlib libfoo.o现在函数库可以使用gcc -o program program.o libfoo.a./program你也可以使用这条命令gcc -o program program.o -L. -lfoo-L. 表示库的位置 在当前目录下-lfoo 表示库的名称 libfoo.a
原创粉丝点击