This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

[参考译文] CODECOMPOSER:包含多个扩展名不同的文件

Guru**** 2551300 points


请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/tools/code-composer-studio-group/ccs/f/code-composer-studio-forum/1133627/codecomposer-include-multiple-files-with-different-extension

器件型号:CODECOMPOSER

你好  

我有一个项目、在该项目中、我需要根据硬件包含不同的文件。 例如、文件不能合并、并且只能在文件扩展名之前的末尾处有不同的扩展名

#include "V2.11_M182_K.h"
#include "V2.11_M182_D.h"

ES 正弦波。 10 Dateien。 ICH würde Ungern immer alle Namen von Hand anpasen。 Leider geht Die einfache 版本:

#define NAME "V2.11_M182"

#include 名称"_K.h"
#include 名称"_D.h"

有人有什么想法吗?

我已经找到了一个具有以下数字的解决方案:

将字符串连接到 C #include filename 中

不幸的是、我无法为两个字符串重写该值。  

Stefan

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    考虑使用命令行上定义的预处理器符号。  然后使用#if 选择要包含的文件。  源代码可能如下所示...

    #if defined(HW_CONFIG_K)
    #include "V2.11_M182_K.h"
    #elif defined(HW_CONFIG_D)
    #include "V2.11_M182_D.h"
    #else
    #error Missing hardware configuration
    #endif

    在命令行上、您必须具有-DHW_CONFIG_K-DHW_CONFIG_D  否则、该#error 会导致编译失败。

    谢谢、此致、

    乔治

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好、George、

    感谢您的回答。 不幸的是、这个问题意味着有点不同。  

    我始终需要所有 h 文件。 但是、名称会根据器件而变化。 例如、对于我需要的器件 V2.11_M182

    #include "V2.11_M182_K.h"
    #include "V2.11_M182_D.h"

    之后、我需要一个器件、其名称为 V5.31_P371

    #include "V5.31_P371 _K.h"
    #include "V5.31_P371 _D.h"

    我希望问题现在更清楚,并有答案。

    h 文件通过 Excel 生成。 输入器件数据、然后通过脚本进行计算。 应该可以将文件合并为两个文件。 但是、由于定义和变量/常量的集成、它必须是两个文件。

    "_K.h"包含变量和常量、它们已在另一个文件中声明为外部变量。
    在文件"_D.h"中有用于预处理器的各种#defines。

    此致

    Stefan

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    如何...

    #define stringify(x) #x
    #define DN2(a, b) stringify(a ## _ ## b ## .h)
    #define DN(a, b) DN2(a, b)
    
    #ifndef DEVICE
    #error Must define DEVICE on the command line
    #endif
    
    #include DN(DEVICE, K)
    #include DN(DEVICE, D)

    为了避免#error  ,命令行必须包含与-DDEVICE=V2.11_M182类似的内容。

    谢谢、此致、

    乔治

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好、George、

    感谢您的解决方案。 这将对我大有帮助。

    此致

    Stefan