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/TM4C1290NCZAD:include 文件中的#ifndef 支架不起作用。

Guru**** 2513185 points


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

https://e2e.ti.com/support/tools/code-composer-studio-group/ccs/f/code-composer-studio-forum/726041/ccs-tm4c1290nczad-ifndef-bracketing-in-include-files-is-not-working

器件型号:TM4C1290NCZAD

工具/软件:Code Composer Studio

我最近刚从 CCS7升级到 CCS8。  已删除我的整个旧安装并重新安装。  我现在使用的是编译器版本 TI v18.1.3.LTS、但编译器似乎存在问题。

1.我的 include 文件括号中有#ifndef ... #endif 阻止以防止意外重新定义。  在我的软件以及所有 TI 系统软件中、编译器似乎都完全忽略了它们(这会产生数百个错误和警告)。

2.我在此应用程序中使用 TIRTOS、编译器的包含文件和 NDK 包含文件似乎存在冲突。  编译器在这方面似乎表现得非常糟糕。

3.新编译器似乎无法处理块内的变量声明。  例如、'for (int i=0;i<100;i++)'生成错误、直到我将声明移出用于定义的、并移到函数块的顶部。

我目前正在重新安装旧版本的软件、以查看是否可以再次恢复正常工作。

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

    您以前使用过哪个版本的编译器?   

    [引用 user="David Dudley"]例如,'for (int i=0;i<100;i++)'生成错误

    我必须使用-c99选项来清理它。  我尝试了几个不同版本的编译器。  所有这些都需要选项--c99。   

    至于你的其他问题... 您的描述过于模糊、无法采取行动。 预处理时出错。  调试此类问题的一个好方法是使用-gen_preprocessor_listing 选项构建、然后检查生成的.RL 文件。  请在 ARM 编译器手册中阅读有关该选项的更多信息。

    谢谢、此致、

    乔治

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

    由于已经存在一段时间、我假设您通过在选项-gen_preprocessor_listing 的帮助下对其进行调试来解决问题。  如果情况并非如此、请告知我们发生了什么。

    谢谢、此致、

    乔治