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.

[参考译文] 编译器/OMAP-L138:TI ARM CGT v18.12.2.LTS &放大器;包含<vector>or >Functional &;时出现 TI C6000 CGT v8.3.LTS 编译器错误。

Guru**** 2538930 points
Other Parts Discussed in Thread: CCSTUDIO

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

https://e2e.ti.com/support/tools/code-composer-studio-group/ccs/f/code-composer-studio-forum/811785/compiler-omap-l138-ti-arm-cgt-v18-12-2-lts-ti-c6000-cgt-v8-3-3-lts-compiler-error-when-vector-or-functional-included

器件型号:OMAP-L138
Thread 中讨论的其他器件:CCStudioOMAPL138

工具/软件:TI C/C++编译器

我一直在为我的项目使用 TI ARM CGT 18.1.5.LTS、其中包括(#include 和 #include ) 、但现在我已经切换到了

最新的 CCStudio 和使用 TI CGT 18.12.2.LTS 时,我会遇到以下编译器错误(与 TI CGT 18.12.1.LTS 相同)。

COMS 行参数:

-mv5e -code_state=32 -me --include_path="C:/ti/ccs901/ccs/tools/compiler/ti-cgt-arm_18.12.2.LTS/include --define=development --define=omapl138 -g -c11 --c++14 --diag_warning=225 --diag_wrap=off --multithread --gen_cross_reference_listing --gen_preprocessor_listing_on-section_sizes

错误:

重载函数"std:__2:_C11_atural_exchange"的实例不匹配参数列表.ccsproject /MyArmProj line 1730、外部位置:C:\ti\ccs901\ccs\tools\compiler\ti-cgt-arm_18.12.2.LTS \include\libcxx\aturic C/C++ problem

重载函数"std:__2:_C11_atural_exchange"的实例不匹配参数列表.ccsproject /MyArmProj 第1733行、外部位置:C:\ti\ccs901\ccs\tools\compiler\ti-cgt-arm_18.12.2.LTS \include\libcxx\aturic C/C++ problem
重载函数"std:__2:_C11_atural_store"的实例不匹配参数列表.ccsproject /MyArmProj 第1736行、外部位置:C:\ti\ccs901\ccs\tools\compiler\ti-cgt-arm_18.12.2.LTS \include\libcxx\aturic C/C++问题
重载函数"std:__2:_C11_atural_store"的实例不匹配参数列表.ccsproject /MyArmProj 第1739行、外部位置:C:\ti\ccs901\ccs\tools\compiler\ti-cgt-arm_18.12.2.LTS \include\libcxx\aturic C/C++ problem

我还成功地使用 TI C6000 CGT 8.2.6.LTS 为 DSP 编译相同的代码一段时间、但现在我已包含(#include 和#include )我有

需要移至 TI C6000 CGT 8.3.LTS、但出现以下错误时仍无法正常工作。

COMS 行参数:

-mv6740 --include_path="C:/ti/ccs901/ccs/tools/compiler/ti-cgt-c6000_8.3.3/include --define=omapl138 -g --c99 --diag_warning=225 --diag_wrap=off --multithread

错误:

主模板.ccsproject /MyDspProj 第5166行的声明中不允许模板参数列表、外部位置:C:\ti\ccs901\ccs\tools\compiler\ti-cgt-C6000-c8.3.3\include\libcxx\memory C/C++ problem
主模板.ccsproject /MyDspProj 第5182行的声明中不允许模板参数列表、外部位置:C:\ti\ccs901\ccs\tools\compiler\ti-cgt-C6000-c8.3.3\include\libcxx\memory C/C++ problem
预期会出现";".ccspproject /MyDspProj line 5150、外部位置:C:\ti\ccs901\ccs\tools\compiler\ti-cgt-C6000-8.3.3\include\libcxx\memory C/C++ problem
预期标识符.ccsproject /MyDspProj line 3487、外部位置:C:\ti\ccs901\ccs\tools\compiler\ti-cgt-C6000-8.3.3\include\libcxx\memory C/C++ problem
预期标识符.ccspProj line 4955、外部位置:C:\ti\ccs901\ccs\tools\compiler\ti-cgt-C6000-8.3.3\include\libcxx\memory C/C++ problem
预期标识符.ccspProj line 5150、外部位置:C:\ti\ccs901\ccs\tools\compiler\ti-cgt-C6000-c8.3.3\include\libcxx\memory C/C++ problem
gmake:***[MyDspProj.obj]错误1 MyDspProj C/C++问题
gmake:目标"全部"不会由于错误而重新生成。 MyDspProj C/C++问题

这是一个问题还是我缺少什么?

提前感谢、

Andy。

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

    我不确定发生了什么情况。  对于每个项目、如果您按照文章 共享项目中的说明压缩它们、然后将这些 zip 文件附加到您的下一个帖子中、我将不胜感激。

    谢谢、此致、

    乔治

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

    感谢您迅速回复 George、

    关于 C6000 CGT v8.3.3、我刚设法编译并链接了我的项目。

    我从一开始就使用所需的 C6000 CGT v8.3.3重新创建了该项目、这似乎已经完成了。 似乎只是更改属性对话框上的旧工程编译器版本不起作用! 我现在回到了原始项目、在从 c99/none/c99和 c++14/c++03/c+14更改选项后、我发现我可以让它正常工作(不确定我使用的确切顺序)。 我不知道为什么这会有所不同,因为我之前注意到--c++14不在命令行上,即使在对话框中选择了该选项。 我尝试通过直接编辑将其添加到命令行、但这没有效果! 只是改变了对话框中最终修复它的值。

    好消息是、我的 DSP 项目现在构建、所以只需修复 ARM 项目。

    我将在周三返工时创建一个展示此问题的最小 ARM 项目。

    谢谢、

    Andy。

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

    尊敬的乔治:

    今天、我终于成功地将其彻底淘汰。 编译器没有问题、事实上、当您知道原因时、这是一个非常明显的错误。

    这与文件中的 true 和 false 定义有关 包含在 C++项目链接的'C'库中。 。  文件来自 C:\ti\OMAPL138_StarterWare_1_10_04_01\include\HW、包含以下内容。


    #ifndef true
    #define true 1.
    #endif

    #ifndef false
    #define false 0
    #endif

    这会使使用 true 和 false 的 atomic.h 参数列表混乱。

    由于我不想更改 StarterWare 文件、因此我在的包含项之前添加了以下内容 和

    #ifdef true
    #undef true
    #endif
    #ifdef false
    #undef false
    #endif

    这已经达到了目的(我不知道是否有更好的方法来实现此目的、除非我确实需要不更改第三方文件)。

    感谢您的帮助、很抱歉、我在发布之前没有看到它(虽然最初是在更改为新编译器并且代码仍然是使用以前的版本构建的之后发生的。 我应该已经意识到、随着 C++14的更新、任何事情都可能发生)。

    再次感谢、

    Andy。