zoukankan      html  css  js  c++  java
  • Makefile里面打印信息

      Makefile的规则相对来说还是比较复杂的,上手不容易,没有系统研究过,往往搞不清楚状况。如果掌握了基本的调试手段,那对我们写出正确的Makefile会非常有帮助。而在Makefile中,最重要的调试手段莫过于输出信息。

      Makefile中需要打印信息,可以通过如下方法:

      $(info info text)、$(warning warning text)或者$(error error text)

      示例:

    CXX = g++ 
    CompileOpt = -g -std=gnu++11
    LinkOpt = -lpthread  $(asan)
    
    Target = main
    
    $(Target) : main.o memory_leak.o
        $(CXX) main.o memory_leak.o -o $(Target) $(LinkOpt)
        $(info info text)
        $(warning warn text)
        $(warning $(asan))
        $(error error text)
    
    main.o : main.cpp memory_leak.h
        $(CXX) -c $(CompileOpt) main.cpp
    
    memory_leak.o : memory_leak.cpp memory_leak.h
        $(CXX) -c $(CompileOpt) memory_leak.cpp
    
    
    clean:
        rm main.o memory_leak.o

      编译输出:

    $ make asan='-fsanitize=leak -fsanitize=address'                                                                                                             
    g++ -c -g -std=gnu++11 main.cpp
    g++ -c -g -std=gnu++11 memory_leak.cpp
    info text
    Makefile:11: warn text
    Makefile:11: -fsanitize=leak -fsanitize=address
    Makefile:11: *** error text.  Stop.

      可以看到,info、warning、error三种输出各有不同,其中error输出甚至会中断编译过程。可以根据不同的需求,用不同的方式输出信息,写出满意的Makefile

  • 相关阅读:
    dockerk个人学习(0)
    ubuntu编译python源码的坑
    查找大目录
    ubuntu 远程gui显示
    paramiko模块
    python open和file的区别
    python type metaclass
    python 生成器 迭代器 yiled
    博客暂停更新,请移步新主页
    win10禁用自动更新服务
  • 原文地址:https://www.cnblogs.com/minglee/p/10599679.html
Copyright © 2011-2022 走看看