我正在研究C ++项目。我有一个名为" version" 的文件,其中只有数字形式的 12343 数字被定义[实际上是版本]。 此"版本" 文件在库A中定义。 不知何故,我需要将此值分配给另一个库B文件中的宏。
有什么办法吗?
因为这项工作是正式的,所以我不能在这里分享这些代码。
答案 0 :(得分:2)
C和C ++都没有语言功能,允许您将宏的扩展文本设置为从外部文件在编译时读取的内容。这些任务通常分配给构建系统。
目的有多种机制,但它们遵循这个一般程序:
外部程序读取包含所需文本的文件
该程序
格式化传达定义的编辑选项的文本(例如-DVERSION=${what_I_read_from_the_file}
)或
写入包含宏定义本身的头文件,例如
#define VERSION version-text-from-the-file
无论哪种方式,获取的信息都以适当的方式提供给构建 - 编译器选项替代方案通过确保在构建时将所选选项传递给编译器来进行,而标头替代依赖于需要宏#include
生成标题的文件。