首页 > 解决方案 > 如何在 C++ 编译时读取文件?

问题描述

我一直在尝试寻找一种const char*在编译时存储文件的方法。

我试过这样做:

#define STRINGIFY(...) #__VA_ARGS__ // va args deals with commas
#define INCLUDE(path) #include path // error: '#' is not followed by a macro parameter

constexpr const char* source = STRINGIFY(INCLUDE("source.txt"));

但不幸的是,您不能将包含指令放在宏扩展中。有没有办法解决这个问题?或者在编译时获取文件内容的任何其他方式?

标签: c++compilationincludefile-handlingpreprocessor-directive

解决方案


执行此操作的经典方法是编写读取数据文件并生成 .H 文件的 awk 或 perl 脚本


推荐阅读