Chinaunix首页 | 论坛 | 博客
  • 博客访问: 313422
  • 博文数量: 82
  • 博客积分: 0
  • 博客等级: 民兵
  • 技术积分: 490
  • 用 户 组: 普通用户
  • 注册时间: 2016-06-13 10:58
文章分类

全部博文(82)

文章存档

2018年(2)

2017年(9)

2016年(71)

我的朋友

分类: 嵌入式

2017-01-09 19:43:12

原文链接:http://blog.csdn.net/xyz347/article/details/50557489

在源码中有时候需要用到文件名,比如log的时候一般都会把文件名打印出来,__FILE__这个宏就是干这事用的。但是这个宏会把路径也带进来,而有时候我们只需要一个简单的文件名而已。

实现方法,通过shell或者Makefile自带的函数,去掉文件的路径,用宏的方式传递进去即可。


Makefile:

[plain] view plain copy
  1. %.o:%.c  
  2.     gcc -o $@ -c $<  -D__NOTDIR_FILE__=$(notdir $<)  


如果是用的blade这个构建工具则可以在BLADE_ROOT的文件的cppflags里面加这么一句
[python] view plain copy
  1. '-D__NOTDIR_FILE__=`basename $SOURCE`',  


然后头文件加这么一段:

[cpp] view plain copy
  1. #ifdef __NOTDIR_FILE__  
  2. #define M2STR(x) #x  
  3. #define M2STR_IMPL(x) M2STR(x)  
  4. #define __BFILE__ M2STR_IMPL(__NOTDIR_FILE__)  
  5. #else  
  6. #define __BFILE__ __FILE__  
  7. #endif  
这样__BFILE__是不包含路径的文件名了。

阅读(4289) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~