Linux gcc 学习

来源:互联网 发布:淘宝大学毕业证 编辑:程序博客网 时间:2024/06/07 06:16

首先建立三个文件,分别为mytest.c mylib.c mylib.h

/**********mytest.c**************/#include <stdio.h>#include <mylib.h>int main(void){  int a=10,b=20,max_num,min_num;  max_num=max(a,b);  min_num=min(a,b);  printf("max_num=%d\n",max_num);  printf("min_num=%d\n",min_num);}

/**********mylib.c***********/int max(int x,int y){  return x>y?x:y;}int min(int x,int y){  return x<y?x:y;}

/*********mylib.h************/int max(int x, int y);int min(int x, int y);
编译结果的方法:

一、普通编译链接

       #gcc  -c  -o  mytest.o mytest.c

        #gcc  -c  -o  mylib.o mylib.c

        #gcc  -o  my_test   mytest.o  mylib.o 

       #./my_test

在命令行输入上述命令可以得到如下结果:

       max_num=20

       min_num=10

二、通过静态链接库

        1、制作静态链接库:

     #gcc  mylib.c   -o   mylib.o

     #ar  rc  libmylib.a  mylib.o

       2、使用静态链接库

    #gcc  -o  my_test  mytest.c  libmylib.a

    #gcc   -o  my_test   mytest.c -L./lmylib

    #./my_test

   同样可以得到结果:

    max_num=20

   min_num=10

   我们都知道编译文件的时候系统会自动的去/lib、/usr/lib下查找库函数,到/usr/include下查找头文件,所上述使用静态链接库方法可以通过以下代码实现:

  #cp  libmylib.a  /usr/lib

  #cp  mylib.h  /usr/include

  #gcc mytest.c  -o my_test  -lmylib

  #./my_test

  执行上述命令得到结果: 

    max_num=20

    min_num=10

三、通过动态链接库

   1、制作动态链接库

  #gcc  -shared mylib.c -o libmylib.so

  #gcc mytest.c -o mytest2 -L./ lmylib

  #export LD_LIBRARY_PATH=/.:$LD_LIBRARY_PATH

  #./mytest2

  同样得到运算结果

   或是:

   #cp libmylib.so /lib

  #gcc mytest.c -o mytest3 -lmylib

 #./mytest3

  同样也可得到结果



    

    

原创粉丝点击