main.c

#include<stdio.h>
#include"chen_print.h" int main(int argc , char * argv ){
chen_print("haha , I'm coming makefile\n");
return ;
}

chen_print.c

#include<stdio.h>

void chen_print( char * str ){
printf("you enter string is :\n\t%s",str);
}

chen_print.h

void chen_print( char * str );

makefile

main:chen_print.h libchen_print.a
  gcc main.c -o main -L./ -lchen_print
libchen_print.a:chen_print.o
  ar -r libchen_print.a chen_print.o chen_print.o:chen_print.h chen_print.c
  gcc -c chen_print.c -o chen_print.o clean:
  rm -f *.o
  rm -f *.a
  rm -f main

简单介绍一下makefile的格式

target:filename1 filename2

<tab>common

其实makefile的规则很简单,就是看你的目标文件(target)做依赖的文件(filename1 filename2)是否有更新,如果依赖文件更新了,它就会自动执行下面的shell命令

注意,shell命令必须要一<table>键做开头,makefile的格式强制这样,没有办法。如果你觉得<tab>不够美观,建议你修改tab的跳转空格数:

vi 上执行:set ts=3

或者直接修改vi的默认配置文件

vi ~/.vimrc

如果原文件已经存在: set ts=n ,那样修改它就好了,如果不存在这句,那么直接在文件末尾加上即可。

我的makefile中还写了clean的命令,是做环境清理用的,执行

$>make clean

它就会执行下面清理的动作

同理,我们在使用

$>make install

这些命令时,实质上就是执行一些shell动作

******************************************

自己学习的网站资料:

详细介绍makefile的用法,入门必备
http://blog.csdn.net/liang13664759/article/details/1771246

有一些入门基础后看的进阶文章

http://goodcandle.cnblogs.com/archive/2006/03/30/278702.html

学习makefile与autoconfig笔记,持续更新的更多相关文章

  1. BLE资料应用笔记 -- 持续更新

    BLE资料应用笔记 -- 持续更新 BLE 应用笔记 小书匠 简而言之,蓝牙无处不在,易于使用,低耗能和低使用成本.'让我们'更深入地探索这些方面吧. 蓝牙无处不在-,您可以在几乎每一台电话.笔记本电 ...

  2. C++入职学习篇--代码规范(持续更新)

    C++入职学习篇--代码规范(持续更新) 一.头文件规范 在头文件中大家一般会定义宏.引入库函数.声明.定义全局变量等,在设计时最后进行分类,代码示范(自己瞎琢磨的,请多多指点): #ifndef T ...

  3. [读书]10g/11g编程艺术深入体现结构学习笔记(持续更新...)

    持续更新...) 第8章 1.在过程性循环中提交更新容易产生ora-01555:snapshot too old错误.P257 (这种情况我觉得应该是在高并发的情况下才会产生) 假设的一个场景是系统一 ...

  4. java 学习必备的软件,持续更新中

    小编会持续更新在学习Java过程中需要的软件以及各种文件: 话不多说,看行动! 一:JDK (1)JDK1.8(*64): 链接:https://pan.baidu.com/s/1vM0jNXn2CT ...

  5. 资源| 学习视频库-永久有效,持续更新!附赠java面试汇总

    每天进步一丢丢,连接梦与想 我们总是羡慕他人的光芒,却忘记自己也会发光 声明 资源来自于网络,小编只是资源的搬运工,若有侵权,联系小编即删. 期待已久的学习视频库来啦! 经过小编多日整理,整理了1.5 ...

  6. react-native-storage 使用笔记 持续更新

    React-native-storage是在AsyncStorage之上封装的一个缓存操作插件库,刚开始接触这个也遇到了一些问题,在这里简单记录总结一下,碰到了就记下来,持续更新吧 1.安卓下stor ...

  7. 数据分析之Pandas和Numpy学习笔记(持续更新)<1>

    pandas and numpy notebook        最近工作交接,整理电脑资料时看到了之前的基于Jupyter学习数据分析相关模块学习笔记.想着拿出来分享一下,可是Jupyter导出来h ...

  8. Semantic ui 学习笔记 持续更新

    这个semantic 更新版本好快~ 首先是代码的标识<code></code> 具体样式就是红框这样的 圈起来代码感觉不错 不过要在semantic.css里在加上如下样式~ ...

  9. Git学习笔记(持续更新)

    1.强制同步为远程的代码 远程仓库回退了commit的情况下(第2条描述之情况),强制同步远程的代码到本地 #更新远程最新的所有代码,但是不merge或者rebase git fetch --all ...

随机推荐

  1. jquery 通过ajax 提交表单

    1.需要引入以下两个js文件 <script src="Easyui/jquery-1.7.2.min.js"></script>    <scrip ...

  2. java使用ftp局域网内多线程上传图片过慢

    多线程ftp上传文件时候,图片上传很慢,调试和查询资料发现主要在:storeFile方法 解决方案如下: FTPClient fc设置setBufferSize 可以根据内存大小适当设置大点的缓冲区: ...

  3. AndroidTest.java

    以下代码使用ApiDemos-debug.apk进行测试 package com.saucelabs.appium; import io.appium.java_client.AppiumDriver ...

  4. java JDBM2 的几个简单实例

    JDBM2 提供了 HashMap 和 TreeMap 的磁盘存储功能,简单易用,用于持久化数据.特别适合用于嵌入到其他应用程序中. 磁盘数据库 HelloWorld.java import java ...

  5. Xcode各个版本及模拟器下载

    如果你嫌在 App Store 下载 Xcode 太慢,你也可以选择从网络上下载: Xcode下载(Beta版打的包是不能提交到App Store上的) 绝对官方源!!!绝对官方源!!!绝对官方源!! ...

  6. hdu1078 FatMouse and Cheese —— 记忆化搜索

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1078 代码1: #include<stdio.h>//hdu 1078 记忆化搜索 #in ...

  7. 通过Chrome浏览器进行android调试/Remote Debugging on Android with Chrome

    The way your web content behaves on mobile can be dramatically different from the desktop experience ...

  8. 加快你的JavaScript加载时间

    发现可以提速的内容 你必须首先发现你的什么图片和HTML加载缓慢了你的脚本速度,下面提供了方法: 1.  Firefox web-developer toolbar 2.  Firebug Plugi ...

  9. Ueditor文本编辑工具栏自定义

    1.找到 ueditor.config.js 文件 2.在 toolbars 数组内进行删减,添加 , toolbars: [[ 'fullscreen', 'source', '|', 'undo' ...

  10. win10环境变量path误删(windows找不到文件‘%windir%\systempropertiesadvanced.exe’)的解决办法

    具体步骤如下:1. 首先重新启动电脑,点击开始按钮,选择电源,此时按住键盘上的shift键,再点击“重启”,选择疑难解答->再选择高级选项->再选择启动设置->然后点击重启-> ...