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:CCS 7.4:并非所有源文件都存在全局预定义的符号

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

https://e2e.ti.com/support/tools/code-composer-studio-group/ccs/f/code-composer-studio-forum/805743/ccs-ccs-7-4-globally-predefined-symbols-not-present-for-all-source-files

工具/软件:Code Composer Studio

我有一个包含多个 C 和 H 文件的项目(用于 C2000)。 今天我添加了一个新的全局预定义符号:在 Project Explorer 中右键单击 Project->Show Build settings->Build->C2000 Compiler->Predefined Symbols 我添加了 test_symbol。

然后我重新编译了整个项目、并惊讶地发现95个文件中只有54个使用"-define=test_symbol"进行编译。

此外、当我打开其中一个在没有"--define=test_symbol"的情况下编译的文件时、将一些代码放入其中

#ifdef test_symbol

#endif

介于#ifdef 和#endif 之间的代码未灰显、即 IDE 看到的内容与编译器/预处理器不同。 这真的很烦人。

根据哪些规则、全局预定义符号会传播到项目成员?

在编译工程时、为了#define 每个文件中的预处理器都能看到的符号、我该怎么做?

此致、Johannes

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

    Johannes、

    如果在工程级别添加了预定义符号、我希望它会传播到工程中的所有源文件、除非使用"文件特定"选项从特定源文件中显式删除。  

    您是否能够共享演示此问题的项目? 这将帮助我们重现该行为、并尝试了解其原因。 如果您不想在此处共享项目、您可以通过私人对话将其发送给我。

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

    总之、项目的设置方式是、特定文件夹(及其内部的所有源文件)具有--define 选项的特定文件选项。 由于该选项被标识为"特定于文件"、因此在工程级别对其进行修改对该文件夹中的文件没有影响、因为工程系统认为不应更新该选项。

    为了允许项目级别选项级别向下传播到所有文件、您可以在特定文件/文件夹级别调整同一选项之前先设置所有项目级别选项。 或者、除了在项目级别添加新选项外、还可以手动将新选项添加到为"特定于文件"选项设置的文件/文件夹中。
x 出现错误。请重试或与管理员联系。