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

  • 相关阅读:
    Linux下mysql使用systemctl restart mysqld命令失败
    Linux环境下mysql报错:bash: mysql: command not found 的解决方法
    Linux查看mysql是否启动的命令
    启动MySQL5.7时报错:initialize specified but the data directory has files in it. Aborting.
    ARM64架构下面安装mysql5.7.22
    Python3.6打开EAIDK-610开发板(计算机通用)摄像头拍照并保存
    Python的几种主动结束程序方式
    aarch64架构下安装tensorflow详细过程
    python代码在linux终端中执行报错:Unable to init server: Could not connect: Connection refused
    red hat 报错:apt-get:找不到命令
  • 原文地址:https://www.cnblogs.com/funway/p/1978659.html
Copyright © 2011-2022 走看看