zoukankan      html  css  js  c++  java
  • makefile for Linux纯小白版

    某大佬曾说过:

    不会makefile,不要说你会linux,因为makefile是合格程序员的必经之路

    首先你要有个vi或者emacs 之类的编辑器

    编写几个程序

    test1.c

    1 #include<stdio.h>
    2 #include "test2.h"
    3  
    4 int main() 
    5 {
    6     printf("This is test1!
    ");
    7     PrintTest2();
    8     return 0;
    9 }

    test2.c

    1 #include<stdio.h>
    2 #include "test2.h"
    3  
    4 int main() 
    5 {
    6     printf("This is test1!
    ");
    7     PrintTest2();
    8     return 0;
    9 }

    test2.h:

    1  #ifndef TEST2_H_
    2  #define TEST2_H_
    3  
    4 void PrintTest2();
    5 
    6  #endif

    然后你的makefile

    需要建立一个文件叫makefile(可以是MAKEFILE)-------但是只能是这两个名字

    接下来就是makefile中的内容

     1 test: test1.o test2.o //这是主要的文件,后面两个是形成的执行文件
     2     gcc -Wall test1.o test2.o -o test
     3     
     4 test1.o: test1.c test2.h//底下这些就是每一个执行文件所包含的.c  .h文件
     5     gcc -c -Wall test1.c -o test1.o//编译
     6 
     7 test2.o: test2.c test2.h//执行文件所包含的.c .h文件
     8     gcc -c -Wall test2.c -o test2.o
     9 
    10 clean: //删除
    11     rm -rf *.o test

    运行的时候是

    ./test

    可以用"代号":使用变量

    前几行是声明

    varname = xxx

    底下写的时候就直接用就行

    使用的时候要$(varname)

     1 OBJS = test1.o test2.o
     2 G = gcc
     3 CFLAGS = -Wall -O -g
     4  
     5 test:$(OBJS)
     6     $(G) $(OBJS) -o test
     7  
     8 test1.o:test1.c test2.h
     9     $(G) $(CFLAGS) -c test1.c
    10 test2.o:test2.c test2.h
    11     $(G) $(CFLAGS) -c test2.c
    12  
    13 clean:
    14     rm -rf *.o test

    makefile加油呀!

  • 相关阅读:
    ajax(读取json数据)
    MD5加密出现 无法启动:此实现不是Windows平台FIPS验证的加密算法的一部分
    二维码(android)
    电脑快捷键大全
    OkHttp
    HttpURLConnection 传输数据和下载图片
    子线程更新UI界面的2种方法
    URLConnection(互联网)
    点滴
    SQL 备忘录
  • 原文地址:https://www.cnblogs.com/zhmlzhml/p/12817605.html
Copyright © 2011-2022 走看看