这里我直接给大家展示一个我自己写的小工程实例,来帮助大家了解在linux下建立工程如何组织文件以及Makefile的编写。
我采用多文件的形式根据命令行的输入,求两个数的加,减,乘,除运算。下面我将分别列出各个文件的代码供大家参考。
add.h
#ifndef _ADD_Hadd.c
#define _ADD_H
int add(int a, int b);
#endif
int add(int a, int b)sub.h
{
return (a + b);
}
#ifndef _SUB_H
#define _SUB_H
int sub(int a, int b);
#endif
sub.c
int sub(int a, int b)
{
return (a - b);
}
mul.h
#ifndef __MUL_H
#define __NUL_H
int mul(int a, int b);
#endif
mul.c
int mul(int a, int b)
{
return (a * b);
}
div.h
#ifndef __DIV_Hdiv.c
#define __DIV_H
double my_div(int a, int b);
#endif
double my_div(int a, int b)
{
return ((double)a / (double)b);
}
main.c
#include <stdio.h>
#include <stdlib.h>
#include "add.h"
#include "sub.h"
#include "mul.h"
#include "div.h"
int main(int argc, char *argv[])
{
int i1 = 0;
int i2 = 0;
if(argc < 3)
{
printf("请输入数字\n");
}
else
{
i1 = atoi(argv[1]);
i2 = atoi(argv[2]);
printf("%d plus %d is %d\n",i1,i2,add(i1,i2));
printf("%d sub %d is %d\n",i1,i2,sub(i1,i2));
printf("%d mul %d is %d\n",i1,i2,mul(i1,i2));
printf("%d div %d is %f\n",i1,i2,my_div(i1,i2));
}
return 0;
}
Makefile
.PHONY:clean
OBJECTS=main.o add.o sub.o mul.o div.o
main:$(OBJECTS)
gcc -Wall -g $^ -o $@
main.o:main.c
gcc -Wall -g -c $< -o $@
add.o:add.c add.h
gcc -Wall -g -c $< -o $@
sub.o:sub.c sub.h
gcc -Wall -g -c $< -o $@
mul.o:mul.c mul.h
gcc -Wall -g -c $< -o $@
div.o:div.c div.h
gcc -Wall -g -c $< -o $@
clean:
rm -f main $(OBJECTS)
工程文件到此列举结束。
关于Makefile的编写,这里我们要注意几点事项。
1.Makefile的命令要以tab键开始,在linux中tab键要设置成4个空格的长度。(设置方法这里就不多说了)
2.在这里编写的Makefile文件只是最简单的Makefile文件,这是我们学习的第一步。
最后:本篇博文的所有版权归个人所有,如需转载请注明版权信息。