单文件夹下的C程序如何编写Makefile文件
来源:互联网 发布:java 6 api中文 在线 编辑:程序博客网 时间:2024/06/05 20:47
通过学习已经学会了GCC的一些基础的命令,以及如何将C语言源代码编译成可执行文件。
我们已经知道在linux环境下编译源码时,常会有以下三个步骤:
./configure
make
make clean
执行./configure时,会检查系统的配置等,得到相关的有用的信息,生成Makefile文件。
执行make命令时,make命令解释Makefile文件中的规则,生成目标文件。
执行make clean会删除生成目标文件过程中的生成的中间文件。
Makefile文件是可以由我们手工建立的:接下来是编写在同一个文件夹下的程序的Makefile文件。
文件有compute.c与m.h,代码如下:
1 //compute.c2 #include<stdio.h>3 #include"m.h"4 int main(){5 int a=2,b=3;6 printf("a+b=%d\n",add(a,b));7 printf("a*b=%d\n",multi(a,b));8 return 0;9 }
1 //m.h 2 int add(int a,int b){ 3 int c; 4 c = a+ b; 5 return c; 6 } 7 8 int multi(int a, int b){ 9 int c=a*b;10 return c;11 }
编写的Makefile文件如下:
1 #makefile 2 objects=compute.o 3 CC=@gcc #如果没有@符号,gcc的命令就会输出到终端 4 CPP=@gcc -c #如果有@符号,gcc的命令就不会输出到终端 5 6 compute:$(objects) 7 $(CC) -o compute $(objects) 8 9 #标准写法10 compute.o:compute.c m.h11 $(CPP) compute.c12 13 14 #简写形式;15 #make自动推导 因为要生成.o文件,就需要相关联的compute.c文件,16 #make会自动生成gcc -c compute.c的命令17 #compute.o:m.h18 19 clean: 20 @rm compute $(objects)
接下来,执行make命令,就会生成compute.o文件与可执行文件compute.
$ ls -l总用量 12-rw-r--r-- 1 qi qi 133 5月 16 17:18 compute.c-rw-r--r-- 1 qi qi 224 5月 17 14:38 Makefile-rw-r--r-- 1 qi qi 105 5月 16 17:14 m.h$ make $ ls -l总用量 28-rwxr-xr-x 1 qi qi 8480 5月 17 19:23 compute-rw-r--r-- 1 qi qi 133 5月 16 17:18 compute.c-rw-r--r-- 1 qi qi 1944 5月 17 19:23 compute.o-rw-r--r-- 1 qi qi 224 5月 17 14:38 Makefile-rw-r--r-- 1 qi qi 105 5月 16 17:14 m.h
执行make clean会按照Makefile文件中的伪目标clean,对文件进行删除操作。
$ make clean $ ls -l总用量 12-rw-r--r-- 1 qi qi 133 5月 16 17:18 compute.c-rw-r--r-- 1 qi qi 224 5月 17 14:38 Makefile-rw-r--r-- 1 qi qi 105 5月 16 17:14 m.h
阅读全文
0 0
- 单文件夹下的C程序如何编写Makefile文件
- 为多个文件夹下的C源代码编写Makefile文件
- openwrt packet文件夹下Makefile文件编写的一些记录
- 单目录下多文件 makefile编写
- c文件如何编译为ko的MAKEFILE文件编写
- .c文件如何编译为ko的MAKEFILE文件编写
- .c文件如何编译为ko的MAKEFILE文件编写
- linux下如何编写makefile文件
- 如何编写Makefile文件
- 如何编写makefile文件
- 如何编写makefile文件
- Linux下简单Makefile文件的编写
- Linux下的Makefile文件编写
- 通用的简单Makefile之单文件单程序
- 如何在redhat6中编写2440的汇编语言程序和Makefile文件
- Linux下C语言编程基础知识--gcc编译器的使用、MakeFile文件的编写
- linux下c/c++编程中的makefile文件编写
- Linux下多文件夹编写Makefile详解
- 在Ubuntu中使用JAVA与tomcat搭建web服务器
- Nmap功能与常用命令
- Wireshark的专家模式
- GCC编译器入门[转载]
- Contemplation! Algebra UVA
- 单文件夹下的C程序如何编写Makefile文件
- 为多个文件夹下的C源代码编写Makefile文件
- unity3d导xcode工程的自动配置
- hdu 3037 Lucas定理模板
- ubuntu关闭631(cups)端口
- JavaScript学习之DOM常用
- linux下安装一款笔记软件(为知笔记)
- 通过公钥解密密文思路(256bits RSA)
- 浅谈匈牙利算法