【问题标题】:How to read a file at compile time in C++? [duplicate]如何在 C++ 编译时读取文件? [复制]
【发布时间】:2020-06-14 21:44:58
【问题描述】:

我一直在尝试寻找一种在编译时将文件存储为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"));

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

【问题讨论】:

  • 特别是,您似乎正在寻找这个solution

标签: c++ compilation include file-handling preprocessor-directive


【解决方案1】:

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

【讨论】:

  • 谢谢,唯一的问题是,如果我想动态更改文件,我将不得不再次运行脚本。
  • 所以你让它成为一个构建依赖项
  • 对于这种情况,您会在 perl 和 awk 之间推荐哪个?
  • 嗯,perl 可能
  • 我想python可能不适合这个?
猜你喜欢
  • 1970-01-01
  • 2011-09-30
  • 1970-01-01
  • 2014-04-19
  • 1970-01-01
  • 2013-03-19
  • 2014-01-15
  • 2012-02-01
  • 1970-01-01
相关资源
最近更新 更多