用makefile编译C文件
来源:互联网 发布:炎黄网络怎么连接 编辑:程序博客网 时间:2024/06/05 08:26
makefile 其实功能挺强大的,这里只是简单谈谈编译C文件的方法。
简单点说,makefile 描述的是目标文件,依赖文件与文件操作命令三部分内容,
目标文件:依赖文件
(一个TAB键)命令语句
一个简单的例子:
main.c
#include<stdio.h>#include<string.h>#include "save.h"int main(){int n=0;while(~scanf("%d",&n)){int len = strlen(str[n]);if(len > 0)printf("%s\n",fun(n));else printf("ERROR!\n");}return 0;}
save.h
#define N 100char str[][N]={"I love you!","What a fucking day!","So What!!!","When and where shall we meet?""Good moening!","Have a good time!","See you."};char * fun(int i){return str[i];}
makefile
NODE 1:
在终端输入:
make
的时候,确省参数即为 main (即 makefile 中的第一个目标文件,就是说相当与输入了:make main);
如果想要执行 clean 操作,需要给 make 命令参数,在终端输入:
make clean
NODE 2:
依赖文件如果和目标文件不在同一个目录,需要加地址,比如:
gcc -c main.c -I /home/administrator/ $^
# $@ -- 目标文件,$^ -- 所有依赖文件# main 即为可执行文件# *.c (用 -c 生成,-c是只编译,不链接,默认GCC/G++是编译链接) *.o(目标文件(二进制)) ,-o 命令可以给可执行文件命名main: main.ogcc -o $@ $^### gcc -o main main.omain.o: main.c save.hgcc -c main.c save.hclean: rm main.o main
这里多说一点,如果你嫌每次都敲个 makefile 麻烦的话,可以考虑下用字符替换,把原有的 makefile 中的关键字,也就是文件名替换成新的,即将要编译的文件名(当然不是所有情况下都能这么做),比如,现在我们新建了一个文件 Rank.c ,需要编译,然后,它的编译条件和 main.c 的一样,那么调用 sed 命令,把 main 替换成 Rank 就行了:
sed -i 's/main/Rank/g' makefile
sed命令具体讲解可以去搜下,很多,这里就不说了
- 用makefile编译C文件
- Linux下C多文件编译Makefile
- linux makefile 编译c和c++文件
- c文件如何编译为ko的MAKEFILE文件编写
- .c文件如何编译为ko的MAKEFILE文件编写
- .c文件如何编译为ko的MAKEFILE文件编写
- c, c++用makefile编译工程
- c, c++用makefile编译工程
- 用Makefile编译普通C/C++项目
- Linux 用Makefile编译C代码
- c编译:makefile基础
- C编译: makefile基础
- C编译: makefile基础
- Linux C Makefile编译
- C编译: makefile基础
- window下通过makefile 文件编译C/C++源文件
- 如何写Makefile编译汇编和C文件
- 用于编译C/C++的一个通用Makefile文件
- 基础(使得IIS支持TCP协议)
- 估算项目的时间进度
- C++ 在模版类里面使用STL 报错?
- c# 写 webservice接口
- JAVA分为三个体系,JavaSE,JavaEE,JavaME(J2ME)的区别以及各个版
- 用makefile编译C文件
- ios 文件操作实例
- XeTeX + xeCJK 重间符号输入 暂时办法
- c 结构与成员属性结构 结构与函数 指向结构的指针
- jbpm4.4 java节点
- C++命名规则
- 小心搅局者华为!防“狼”战行动
- Oracle启用归档模式
- 手脱ACProtect 1.4x -> RISCO soft (尽量从新手角度分析)