这里我直接给大家展示一个我自己写的小工程实例,来帮助大家了解在linux下建立工程如何组织文件以及Makefile的编写。
我采用多文件的形式根据命令行的输入,求两个数的加,减,乘,除运算。下面我将分别列出各个文件的代码供大家参考。
add.h
#ifndef _ADD_H #define _ADD_H int add(int a, int b); #endifadd.c
int add(int a, int b) { return (a + b); }sub.h
#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_H #define __DIV_H double my_div(int a, int b); #endifdiv.c
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文件,这是我们学习的第一步。
最后:本篇博文的所有版权归个人所有,如需转载请注明版权信息。