linux网络编程的入门教程:单文件和多文件编译、静态链接库和动态链接库的生成

内容如下两部分:

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

猜你喜欢

转载自blog.csdn.net/weixin_42492218/article/details/81192158