我想知道在 C++11⁄14 中是否可以在编译时实际读取文件。例如,下面的代码只有在可以成功读取文件的情况下才会编译。
constexpr std::string shader_source = load("~/foo.glsl");
你认为这可能吗?
我知道在构建我的应用程序时我可以使用一些自定义工具来做到这一点。
原文由 Maik Klein 发布,翻译遵循 CC BY-SA 4.0 许可协议
我想知道在 C++11⁄14 中是否可以在编译时实际读取文件。例如,下面的代码只有在可以成功读取文件的情况下才会编译。
constexpr std::string shader_source = load("~/foo.glsl");
你认为这可能吗?
我知道在构建我的应用程序时我可以使用一些自定义工具来做到这一点。
原文由 Maik Klein 发布,翻译遵循 CC BY-SA 4.0 许可协议
3 回答2k 阅读✓ 已解决
2 回答3.9k 阅读✓ 已解决
2 回答3.2k 阅读✓ 已解决
1 回答3.2k 阅读✓ 已解决
1 回答2.7k 阅读✓ 已解决
3 回答3.5k 阅读
3 回答505 阅读✓ 已解决
基于 teivaz 的想法,我想知道通常的“扩展后字符串化”技巧是否有效:
尽管如此,我还是会选择传统的
extern const char[]
声明由链接器解析为内容。文章 “Embedding a File in an Executable, aka Hello World, Version 5967” 有一个例子:当然,您应该更改
--output
和--binary-architecture
命令以匹配您的平台。目标文件中的文件名以符号名称结尾,因此您可以像这样使用它: