Linux下多文件编译连接方法:
对以下3个简单的程序进行编译连接:
main.c程序:
#include<stdio.h>
int main()
{
int num1=22,num2=33;
printf("max num is %d, min num is %d/n",max(num1,num2),min(num1,num2));
return 0;
}
max.c程序:
int max(int a,int b)
{
return a>b?a:b;
}
min.c程序:
int min(int a,int b)
{
return a<b?a:b;
}
1、主程序main.c中使用include语句包含连接程序源代码文件
main.c程序中
#include "max.c"
#include "min.c"
编译连接时直接对主程序源文件进行编译
gcc main.c
2、将部分或全体源代码文件预编译为.o文件,然后集体进行编译连接
gcc -c max.c -o max.o
gcc -c min.c -o min.o
...
全体进行编译连接
gcc main.c max.o min.o ... -o main.out
3、在主程序中对调用程序进行变量声明,然后进行连接编译
main.c程序中
int max(int a,int b);
int min(int a,int b);
连接编译:
gcc main.c max.c min.c
注、也可以用max.h和min.h文件将
Linux下makefile的编写
1、在makefile中,”#“后的内容表示为注释,make将忽略该行;
2、在makefile中,以上程序连接编写如下
上述第二种情况:
main.out:main.c max.o min.o
gcc main.c max.o min.o
max.o:max.c
gcc -c max.c
min.o:min.c
gcc -c min.c
上述第三中情况:
main.out:main.c max.c min.c
gcc main.c max.c min.c