只打印文名

CMakeLists.txt

c 复制代码
set(CMAKE_C_FLAGS "-O0 -ggdb -D__NOTDIR_FILE__=$(notdir $<)")
// set(CMAKE_C_FLAGS "-O0 -ggdb -D__NOTDIR_FILE__=$(notdir $<) -D__FILENAME__=$(subst $(dir $<),,$<)")

C文件

c 复制代码
#include <stdio.h>

#ifdef __NOTDIR_FILE__
#define M2STR(x) #x
#define M2STR_IMPL(x) M2STR(x)
#define __BFILE__ M2STR_IMPL(__NOTDIR_FILE__)
#else
#define __BFILE__ __FILE__
#endif

void hello()
{
	printf("[%s:%s: %d] hello word\n", "123123", __BFILE__, __LINE__);
}

结果

c 复制代码
liuwen@liuwen-VirtualBox:~/test/cmake/02-1-use_static_lib/build$ ./static_use
[123123:hello.c: 18] hello word
相关推荐
码兄科技4 分钟前
Java AI智能体开发实战:从零构建智能对话系统指南
java·开发语言·人工智能
Drone_xjw1 小时前
从 GDB 到 CDB:C/C++ 程序调试的两把“手术刀”
c语言·开发语言·c++
SL-staff2 小时前
智慧园区2000+设备统一管理:JVS-IoT如何降低运维成本40%
java·开发语言·物联网·智慧园区·设备管理·运维优化·jvs-iot
苍狼唤3 小时前
WinForm练习知识补充(多线程)
c#
2zcode3 小时前
基于MATLAB图像处理的饮料瓶灌装液位检测系统设计与实现
开发语言·图像处理·matlab
必须得开心呀5 小时前
QT解决中文乱码问题
开发语言·qt
这不小天嘛5 小时前
JAVA八股——redis篇
java·开发语言·redis
逝水无殇7 小时前
C# 字符串(String)详解
开发语言·后端·c#
精明的身影7 小时前
C++自学之路1:Hello world
开发语言·c++
leo__5207 小时前
基于导航数据的扩展卡尔曼滤波(EKF)MATLAB 实现
开发语言·matlab