Makefile里面打印信息
Makefile的规则相对来说还是比较复杂的,上手不容易,没有系统研究过,往往搞不清楚状况。如果掌握了基本的调试手段,那对我们写出正确的Makefile会非常有帮助。而在Makefile中,最重要的调试手段莫过于输出信息。
Makefile中需要打印信息,可以通过如下方法:
$(info info text)、$(warning warning text)或者$(error error text)
示例:
CXX = g++
CompileOpt = -g -std=gnu++
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++ main.cpp
g++ -c -g -std=gnu++ memory_leak.cpp
info text
Makefile:: warn text
Makefile:: -fsanitize=leak -fsanitize=address
Makefile:: *** error text. Stop.
可以看到,info、warning、error三种输出各有不同,其中error输出甚至会中断编译过程。可以根据不同的需求,用不同的方式输出信息,写出满意的Makefile
Makefile里面打印信息的更多相关文章
- 在makefile中打印错误或警告信息
在makefile中打印警告或者错误消息的方法: $(warning xxxxx) 或者 $(error xxxxx) 输出变量方式为: $(warning $(XXX))
- makefile中打印变量名字,方便调试
$(warning $(DVD_SERVICE)) // DVD_SerVICE是Makefile中的变量 $(warning ST40_IMPORTS is $(ST40_IMPORTS)) 变 ...
- 1.4socket服务器打印信息的四种不同方式()
方式一 socker 服务器 # -*- coding: utf-8 -*- import sys,os,multiprocessing from socket import * serverHost ...
- Xcode8如何去除控制台多余的打印信息
Xcode8如何去除控制台多余的打印信息 最近刚使用了Xcode8.遇到了一些问题,总结如下.希望对大家有所帮助. 一.如何去除控制台多余的打印信息. 方法:点击Product----Scheme-- ...
- Mininet在创建拓扑的过程中为什么不打印信息了——了解Mininet的log系统
前言 写这篇博客是为了给我的愚蠢和浪费的6个小时买单! 过程原因分析 我用Mininet创建过不少拓扑了,这次创建的拓扑非常简单,如下图,创建拓扑的代码见github.在以前的拓扑创建过程中,我都是用 ...
- gc 辅助打印信息
cat xx.xml|grep GC <jvm-arg>-XX:+PrintGCDetails</jvm-arg> <jvm-arg>-XX:+PrintGCDat ...
- OK335xS 网络连接打印信息 hacking
/*********************************************************************** * OK335xS 网络连接打印信息 hacking ...
- iOS中忽略NSLog打印信息(通过PCH文件中定义DEBUG宏解决)
iOS中忽略NSLog打印信息 解决办法: 1.新建PrefixHeader_pch文件,在该文件中定义一下宏 //通过DEBUG宏的定义来解决Debug状态下和Release状态下的输出 #ifde ...
- WPF 使用Console.Write打印信息到控制台窗口中
WPF中使用Console.Write函数来打印信息是没有意义的,因为并没有给其输出字符的窗口.对于桌面程序来说,这是十分合理的,然而有时为了方便调试,在程序编写过程中打印出信息给程序员看还是必要的, ...
随机推荐
- python(三):函数
一.函数.名称空间与作用域 1.函数的构成 python有三种层次的抽象:(1)程序可分成多个模块:(2)每个模块包含多条语句:(3)每条语句对对象进行操作.函数大致处于第二层.函数有它的定义格式.参 ...
- simulink使用system test测试 (matlab2014a)
simulink中有个工具system test,tools->systemtest->launch system test 打开.打开之后界面是这样的 选择insert->test ...
- 【DUBBO】 Dubbo原理解析-Dubbo内核实现之基于SPI思想Dubbo内核实现
转载:http://blog.csdn.net/quhongwei_zhanqiu/article/details/41577235 SPI接口定义 定义了@SPI注解 public @interfa ...
- elixir 调用erlang 代码
备注: 项目比较简单,主要是elixir 混合erlang 代码,elixir 调用erlang 模块方法 1. 初始化项目 mix new erlangelixirdemo 项目结构如 ...
- 移动端固定头部和固定左边第一列的实现方案(Vue中实现demo)
最近移动端做一份报表,需要左右滚动时,固定左边部分:上下滚动时,固定头部部分. 代码在Vue中简单实现 主要思路是: a.左边部分滚动,实时修改右边部分的滚动条高度 b.头部和内容部分都设置固定高度, ...
- GOF23设计模式之原型模式(prototype)
一.原型模式概述 1.通过new产生一个对象需要非常繁琐的数据准备和访问权限,则可以使用原型模式. 2.就是java中的克隆技术,以某个对象为原型,复制出新的对象,显然,新的对象具备原型对象的特点. ...
- phpstudy mysql无法启动
在安装好phpstudy后,Apache可以启动,Mysql无法启动. 以管理员的身份运行cmd,然后输入sc delete mysql 即可
- H3C V7版本的系统默认权限
H3C (v7平台)Console口通过账号密码登陆配置教程 http://www.023wg.com/h3c/496.html H3C (v7平台)Console口通过账号密码登陆配置教程 看不懂的 ...
- 5月17日上课笔记-js面向对象
二.js面向对象 js创建对象: var 对象名称 = new Object(); person.name = "小明"; //姓名 person.age = 18; person ...
- Druid.io系列(七):架构剖析
1. 前言 Druid 的目标是提供一个能够在大数据集上做实时数据摄入与查询的平台,然而对于大多数系统而言,提供数据的快速摄入与提供快速查询是难以同时实现的两个指标.例如对于普通的RDBMS,如果想要 ...