<分区>
我在记录和调试程序期间使用 __FILE__
。当我使用它时,我会得到完整的源文件路径。所以,我想编写自己的宏,类似于宏 __FILE__
。
我寻找解决方案,但一无所获。
那么,是否存在一种 CMake 方法来实现用户宏,这将生成类似于 __FILE__
宏的数据?
<分区>
我在记录和调试程序期间使用 __FILE__
。当我使用它时,我会得到完整的源文件路径。所以,我想编写自己的宏,类似于宏 __FILE__
。
我寻找解决方案,但一无所获。
那么,是否存在一种 CMake 方法来实现用户宏,这将生成类似于 __FILE__
宏的数据?
最佳答案
只需从 __FILE__
中删除路径即可。
可能的解决方案:
#include <libgen.h>
#include <stdio.h>
#define LOG(message) \
do { \
char* filename = basename(__FILE__); \
printf("In %s: %s", filename, message); \
} while(false);
必须通过检查日志级别来扩展示例。并且应该使用可变数量的参数而不是固定消息。
注意:这是针对 Unix 的。假设您的操作系统提供了类似的功能。
关于c++ - CMake C/C++宏生成,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47000986/