去掉宏__FILE__的路径

来源:互联网 发布:魔法贴是什么软件 编辑:程序博客网 时间:2024/06/14 20:33

宏__FILE__展开后会带有路径信息,比如下面的代码:

#include<stdio.h>#include<stdlib.h>int main(){    printf("file_name:%s\n", __FILE__);    return 0;}

如果Makefile内容如下:

CFALG = -Wallall: /home/helloworld/test.c    gcc $(CFALG) $< -o test

编译运行,程序输出为:

file_name:/home/helloworld/test.c

为了不让宏__FILE__带有路径信息,可以在Makefile中重定义宏__FILE__:

CFALG = -WallCFALG += -U__FILE__ -D__FILE__='"$(subst $(dir $<),,$<)"'all: /home/helloworld/test.c    gcc $(CFALG) $< -o test

编译运行,程序输出为:

file_name:test.c

取消宏__FILE__会产生编译警告,如果不想产生警告,可以考虑新建一个宏, 比如__FILENAME__。

0 0
原创粉丝点击