有没有办法通过从另一个文件中读取值来为宏赋值

Is there a way to assign a value to a macro by reading a value from another file?

本文关键字:读取 赋值 文件 另一个 有没有      更新时间:2023-10-16

我正在做C++项目。我有一个名为"version">的文件,其中只有 12343 个类似的数字以数字形式定义 [实际上是版本]。此"版本">文件在库 A 中定义。不知何故,我需要将此值分配给另一个库 B 文件中的宏。

有什么办法吗?

因为,这项工作是官方的,所以我不能在这里分享代码。

C 和 C++ 都没有语言功能,允许您将宏的扩展文本设置为编译时从外部文件读取的内容。 相反,此类任务通常分配给构建系统。

为此目的有多种机制,但它们遵循以下一般程序:

  • 外部程序读取包含所需文本的文件

  • 该程序要么

    • 格式化传达定义的编译选项的文本(例如 -DVERSION=${what_I_read_from_the_file} (,或

    • 写入包含宏定义本身的头文件,例如

      #define VERSION version-text-from-the-file
      
  • 无论哪种方式,获取的信息都以适当的方式提供给构建 - 编译器选项替代项通过确保在构建时将所选选项传递给编译器来继续,而标头替代项取决于需要宏#include生成的标头的文件。