linux下c程序开发过程简单实例

编辑

******max.h*********

int max(int, int);

*****max.c*********

#include "max.h"

int max(int a, int b)

{

  return (a > b) ? a : b;

}

******min.h*******

int min(int, int);

******min.c*******

#include "min.h"

int min(int a, int b)

{

  return (a<b) ? a : b;

}

*******main.c**********

#include <stdio.h>

#include "max.h"

#include "min.h"

int main(int argc, char** argv)

{

  int a = 10, b = 20;

  printf("最大值:%d", max(a, b));

  printf("最小值:%d", min(a, b));

  return 0;

}

编译

生成可执行文件:gcc main.c max.c min.c -o test

生成静态库:

gcc -c max.c min.c

ar cr libtest.a max.o min.o

gcc -o test main.c -L. -ltest

生成共享库:

gcc -c -fPIC max.c min.c

gcc -shared -fPIC -o libtest.so max.o min.o

注:-lm连接数学库、-lpthread连接线程库、-g可调试

makefile

main: main.o max.o min.o

  gcc -o main main.o max.o min.o

main.o: main.c max.h min.h

  gcc -c main.c

max.o: max.c max.h

  gcc -c max.c

min.o: min.c min.h

  gcc -c min.c

clean:

  rm *.o

简化后:

main: main.o max.o min.o

  gcc -o $@ $^

.c.o:

  gcc -c $<

原文地址:https://www.cnblogs.com/feilv/p/4065485.html