c++ - CMake C/C++宏生成

标签 c++ c cmake

<分区>

我在记录和调试程序期间使用 __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/

相关文章:

c++ - 在 CMake 中添加多个可执行文件

c++ - 试图将一个简单的按钮绑定(bind)到 SFGUI 中的 OnClick 函数

c++ - boost::variant 如何允许字符串常量?

c++ - 是否可以将文件添加到 Visual Studio 中的 CMake 生成的解决方案文件夹中?

c - extern“C”在msvc++ 9.0中无效

c - 在 C 中读取未定义长度的字符串

c++ - 如何在 CLion 中编译子目录文件?

c++ - 如何在 Linux/Windows 上测量 CPU 时间和挂钟时间?

c++ - 从 UUID 中提取 MAC 地址

c - scanf: "%[^\n]"跳过第二个输入,但 "%[^\n]"不会。为什么?