只打印文名

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
相关推荐
C、空白格12 分钟前
Java集成Vosk实现离线语音识别
java·开发语言·语音识别
编码浪子20 分钟前
基于 Rust + Axum 的企业级权限管理系统设计与实现
开发语言·后端·rust
历程里程碑23 分钟前
MySQL事务深度解析:ACID到MVCC实战+万字长文解析
开发语言·数据结构·数据库·c++·sql·mysql·排序算法
Lyyaoo.30 分钟前
【JAVA基础面经】native方法
java·开发语言
牛十二32 分钟前
nacos2.4连接出错源码分析
java·linux·开发语言
小松加哲40 分钟前
AspectJ编译期织入实战
java·开发语言
鲸渔41 分钟前
【C++ 跳转语句】break、continue、goto 与 return
开发语言·c++·算法
喜欢吃燃面1 小时前
Linux 进程信号深度解析:从概念到产生机制
linux·开发语言·学习
AI玫瑰助手1 小时前
Python基础:字符串的常用内置方法(查找替换分割)
android·开发语言·python
Foreer黑爷1 小时前
Java并发工具箱:CountDownLatch与CyclicBarrier使用指南
java·开发语言·jvm