内容如下两部分:
1.使用gcc进行单文件和多文件编译。
2.使用ar生成静态链接库,使用gcc生成动态链接库。
1.首先启动vmware虚拟机进入Linux系统,打开vi编辑器,新建c源文件hello.c,内容如下:
#include <stdio.h> /*头文件包含*/
int main(void)
{
printf("Hello World!\n"); /*打印“Hello World!”*/
return 0;
}
生成可执行文件:
# gcc hello.c 默认扩展名是a.out
# ./a.out 运行
# gcc –o test hello.c 生成可执行文件test
# ./test
2.编译生成目标文件。
#gcc –c hello.c 默认生成同名的目标文件hello.o
3.多文件编译
准备如下两个源文件,
string.c内容如下:
#define ENDSTRING '\0' /*定义字符串*/
int StrLen(char *string)
{
int len = 0;
while(*string++ != ENDSTRING) /*当*string的值为'\0'时,停止计算*/
len++;
return len; /*返回此值*/
}
main.c内容如下:
#include <stdio.h>
extern int StrLen(char* str); /*声明Strlen函数*/
int main(void)
{
char src[]="Hello Dymatic"; /*字符串*/
printf("string length is:%d\n",StrLen(src)); /*计算src的长度,将结果打印出来*/
return 0;
}
将两个源文件编译成一个可执行文件test
#gcc –o test string.c main.c
#./test
4. 生成和使用静态链接库
首先生成string.c的目标文件string.o(参看前面步骤)。
将string.o打包为库文件libstr.a
# ar –rcs libstr.a string.o
#gcc –o test main.c -lstr 该命令提示str库路径问题
改成 #gcc –o test main.c –L. -lstr
# ./test
5. 生成和使用动态链接库
将string.c打包为库文件libstr.so
#gcc -fIPC shared -o libstr.so string.o
#gcc –o test main.c –L. -lstr
#./test