zoukankan      html  css  js  c++  java
  • 【LINUX编程】Makefile的基本介绍

    1.make  &  Makefile 的基本用法:

    一个程序由print.cmain.c两个源文件构成,程序的功能是main.c中的main函数调用print.c中定义的print函数。

     

    (1)基本的编译链接:

    # cc -c main.c                  //编译main.c生成目标文件main.o

    # cc -c print.c                //编译print.c生成目标文件print.o

    # cc -o exe main.o print.o      //链结main.oprint.o生成可执行文件exe

     

    (2)Makefile文件

    exe:main.o print.o         //1      //依赖条件

        cc -o exe main.o print.o      //命令      

                                                                                         

    main.o:main.c             //2                    

        cc -c main.c                                    

                                                                                         

    print.o:print.c            //3                      

        cc -c print.c                                    

                                                                                        

    clean:                     //4                       

        rm -f exe *.o                                   

     

    1   exe依赖于main.oprint.o,使用"cc -o exe main.o print.o"生成exe

    2   main.o依赖于main.c,使用"cc -c main.c"生成main.o

    3   print.o依赖于print.c,使用"cc -c print.c"生成print.o

    4   clean目标是独立的。可使用 $ make clean 来执行rm删除命令.

    !!!注意: makefile的 命令要以TAB开头,依赖条件顶格

     

    2. 关于Makefile生成多个无关的可执行文件

    make命令不加参数的话只会默认生成第一个标签,所以对于想生成多个彼此无关的可执行文件,可以设置第一个标签为all并关联到要多个目标文件。

    例如:

    all a.exe b.exe         

    a.exe: a.c              

            gcc –o a.exe a.c

    b.exe: b.c              

            gcc –o b.exe b.c

    (如果不使用all标签的,则make将只生成a.exe,而忽略下一个无关的标签b.exe)

    3. 更多

    《跟我一起写Makefile》http://www.chinaunix.net/jh/23/408225.html

  • 相关阅读:
    STL容器list容器API
    STL容器之list基本概念
    STL容器queue的API
    做tab切换时,点击浏览器返回拿不到实时的tab参数,请求不到实时的数据
    v-for渲染出来的列表,要根据不同的状态改变样式,通过给标签添加lang属性完成
    清除每隔5000毫秒请求一次接口的定时器(需求:每当我手动核销电子码,页面上的显示数据要实时更新到)
    ES6数组解构赋值
    es6 var、let、const命令
    canvas计算高度(自定义高度)
    Vue 点击button请求接口,接收不到返回的参数
  • 原文地址:https://www.cnblogs.com/funway/p/1978659.html
Copyright © 2011-2022 走看看