zoukankan      html  css  js  c++  java
  • 学习makefile与autoconfig笔记,持续更新

    main.c

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

    chen_print.c

    #include<stdio.h>
    
    void chen_print( char * str ){
    printf("you enter string is :
    	%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

    再进击
  • 相关阅读:
    logback不输出日志消息,且SLF4J绑定源错误
    solr6.4.1 搜索引擎(1)启动eclipse启动
    centos7网络连接
    OutOfMemoryError异常java内存泄漏(Memory Leak)和内存溢出(Memory Overflow)
    centos7软件安装redis3.2
    centos7软件安装mysql5.7
    solr6.4.1搜索引擎(5)使用zookeeper3.4.9分布式集群
    mysql优化数据库优化、SQL优化
    solr6.4.1搜索引擎(4)tomcat重启后数据加载缓慢或丢失
    centos7软件安装jdk1.8
  • 原文地址:https://www.cnblogs.com/chenfool/p/3576486.html
Copyright © 2011-2022 走看看