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.

[参考译文] CCS/TMS320F280049:为#if #elif 语法检查定义的符号

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

https://e2e.ti.com/support/tools/code-composer-studio-group/ccs/f/code-composer-studio-forum/826313/ccs-tms320f280049-defined-symbols-for-if-elif-syntax-hilighting

器件型号:TMS320F280049

工具/软件:Code Composer Studio

我正在 CCS 9中使用 make 文件项目。  我在编译器命令行上有一个预定义符号。  CCS 中的编辑器未正确突出显示#if #ifdef (全部为灰色)。  是否有方法告知 CCS 这些预定义符号、以便正确突出显示?

在相关帖子链接中-在 properties->c/c++ Paths and Symbols 中提到了与项目相关的符号,但我看不到"symbols"选项卡。  可能是因为它是 make 文件?

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

    在以下代码中、在命令行上定义 CONTROLLER_ID_L1或 L2。  源文件中#if 和#elif 内的所有内容均呈灰色显示。

    #if 已定义(CONTROLLER_ID_L1)
    #define INC_FILE "PID_L1.h"
    #define RUN_PID DCL_runPID_L1
    #define CPU_IT_CLA
    #Elif defined (CONTROLLER_ID_L2)
    #define INC_FILE "PID_L2".h"
    #define RUN_PID DCL_runPID_L2
    #define CPU_IT_CLA
    … 

    和更高版本... 尽管上面已经定义了 CPU_IT_CLA、但这都是灰色的

    #if 已定义(CPU_IT_CLA)
    #include "cla_cpu_shared.h"
    void setupCLA (void);
    #pragma DATA_SECTION (rk、"CpuToCla1MsgRAM");
    浮子 rk;
    #pragma DATA_SECTION (YK、"CpuToCla1MsgRAM");
    悬空 YK;
    #pragma DATA_SECTION (lk、"CpuToCla1MsgRAM");
    …… 

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

    Lori、

    对于 makefile 工程、由于符号定义、包含路径等仅在编译后才知道、因此我希望编辑 器在编译工程之前不会正确突出显示#ifdef、而是在编译之后(例如在调试期间)。 然而,我也听说这一地区在 CDT 历史上一直很破旧。

    [引用 user="Lori Heustess">在相关的帖子链接中,在 properties->c/c++ Paths and Symbols 中提到了与项目相关的符号,但我看不到符号选项卡。  [/报价]

    在 CCS 9.1中、这现在位于 "预处理器包含路径、宏等"属性页下。

    在"CDT 用户设置条目"下、我可以单击"添加"、然后添加一个预处理器宏、该宏随后被编辑器正确拾取。

    希望这对您有所帮助。

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

    感谢您的试用。  即使在编译和加载以进行调试后、这仍然显示为全灰色。   

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

    我找到了最后使用 CCS 8.0修改的旧 make 工程、其中 CCS 工程之前设置了符号以使 CCS 条件编译语法突出显示正确。

    该工程已导入到具有新工作区的 CCS 9.1中、语法突出显示仍然正确:

    在上面的中、符号显示在"CDT Managed Build Setting entries [ shared ]"下、而不是"CDT User Setting entries "下。 不确定这是否是导致不同行为的原因。

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

    [引用用户="Lori Heustess">感谢您的尝试。  即使在编译和加载以进行调试后、这仍然显示为全灰色。   [/报价]

    Lori、

    这很奇怪、因为在 CDT 用户设置条目中添加宏对我来说很有用。

    您能否分享您的项目供我查看?

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

    该工程是私有共享的、结果是添加到 "预处理器包含路径、宏等"属性页的预处理器宏由于索引器设置而未被"拾取"。

    在项目中,Indexer 被设置为“使用固定的编译配置”并被设置为特定的编译配置,因此没有挑选为不同配置添加的宏。 将设置更改为“使用活动的编译配置”允许它正确地选取为该编译配置设置的宏,并解决了编辑器突出显示的问题。

x 出现错误。请重试或与管理员联系。