手机版

ubuntu下C编程,编译基础(4)

发布时间:2021-06-08   来源:未知    
字号:

void hellofirst()

{

printf(“The first hello\n”);

}

/* hellosecond.c */

#include <stdio.h>

void hellosecond()

{

printf(“The second hello\n”);

}

这两个源码文件可以用以下命令编译成对象文件:

$ gcc -c -Wall hellofirst.c hellosecond.c

程序 ar 配合参数 -r 可以创建一个新库并将对象文件插入。如果库不存在的话,参数 -r 将创建一个新的,并将对象模块添加(如有必要,通过替换)到归档文件中。下面的命令将创建一个包含本例中两个对象模块的名为 libhello.a 的静态库:

$ ar -r libhello.a hellofirst.o hellosecond.o

现在库已经构建完成可以使用了。下面的程序 twohellos.c 将调用该库中的这两个函数:/* twohellos.c */

void hellofirst(void);

void hellosecond(void);

int main(int argc,char *argv[])

{

hellofirst();

hellosecond();

return 0;

}

程序 twohellos 可以通过在命令行中指定库用一条命令来编译和链接,命令如下: $ gcc -Wall twohellos.c libhello.a -o twohellos

静态库的命名惯例是名字以三个字母 lib 开头并以后缀 .a 结束。所有的系统库都采用这种命名惯例,并且它允许通过 -l(ell) 选项来简写命令行中的库名。下面的命令与先前命令的区别仅在于 gcc 期望的找寻该库的位置不同:

$ gcc -Wall twohellos.c -lhello -o twohellos

ubuntu下C编程,编译基础(4).doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印
×
二维码
× 游客快捷下载通道(下载后可以自由复制和排版)
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
注:下载文档有可能出现无法下载或内容有问题,请联系客服协助您处理。
× 常见问题(客服时间:周一到周五 9:30-18:00)