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:程序模式编译失败

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

https://e2e.ti.com/support/tools/code-composer-studio-group/ccs/f/code-composer-studio-forum/652281/ccs-program-mode-compilation-fails

工具/软件:Code Composer Studio

从至少 CCSv5开始到 CCSv7 (自己检查)、可复制的程序模式编译存在问题。

如果源文件位于同一目录中、则程序模式编译可以工作、如果创建子目录或添加更多源目录-则不工作。

编译在没有启用'program mode compilation'选项的情况下正常工作。

在 CDT 中将源位置添加到"路径"不起作用。

Note1:我发现 CCSv4.4中存在相同的问题、但由于 :https://e2e.ti.com/support/development_tools/compiler/f/343/t/98506而无法解决

注2:我无法共享我的项目、但可以更轻松地复制此错误。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好!
    我将把您的帖子移至编译器论坛。 那里的专家可以为您提供最好的帮助。

    请注意、由于这里的假日季、响应可能会有点延迟、可能是因为人们在度假。

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

    您使用哪种 TI 编译器?  如果它支持--opt_level=4,则我建议您不要使用程序级优化,而是使用--opt_level=4。  您将获得可能更好的优化结果。  它可以避免程序级优化的所有构建时间问题。

    谢谢、此致、

    乔治

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

    我已经尝试过具有相同结果的不同编译器。 当前安装的编译器版本为:7.4.23、8.1.4、8.2.1、8.2.2

    我在 CCS 界面中看不到任何支持--opt_level=4的选项,因此我实际上甚至不想存在这样的级别。 是否可以对其进行设置、如果是、还可以对哪些编译器进行设置?

    至于通用优化、我的代码具有一些抽象、例如通过指针调用函数。 如果使用简单的优化、编译器会将所有指令分别用于加载地址和跳转、如果使用"程序模式编译"、则在大多数情况下它只是一个直接跳转。

    我要么必须排除抽象(这使得支持和改进此代码变得更难)、要么现在使用"程序级优化"。 该程序对时间至关重要、因此、通过上述优化甚至提高5%的速度都非常有用、并允许我使用更复杂的处理。

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

    您的编译是否也会像您引用的线程那样以静默方式失败、或者是否有错误消息?  我想知道、当您说编译"不起作用"时、您的具体意思是什么。

    您能否从工作中和非工作中的案例发布控制台日志?

    程序模式编译本质上是通过将命令行上的所有源文件串联到一个单元中来运行的。  因此、我希望日志显示"cl6x -o -pm a.c b.c c.c d.c d.c"之类的内容。  如果问题仅涉及子文件夹,那么我想知道子目录前缀是否缺失或 cl6x 命令是否被分解为多个命令。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    OH、和-opt_level=4不受 cl6x 支持。 它支持 ARM、MSP430和 C2000。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    [引用 user="Vladislav Vasiliev55"]当前安装的编译器版本为:7.4.23、8.1.4、8.2.1、8.2.2 [/引号]

    我可以从这些版本号中得知您使用的是 C6000编译器。  正如 pf 指出的那样、这个编译器不支持--opt_level=4。

    我无法重现-pm 建筑问题。  我使用 CCS v7.3整合了一个非常简单的项目。  它在子文件夹中有源文件、并使用-pm。  它可以顺利构建。  此帖子附在本帖子的末尾。

    请整理一个展示该问题的项目。  将其打包到 zip 文件中、如文章 项目共享中所述。  将该 zip 文件附加到您的下一个帖子。

    谢谢、此致、

    乔治

    e2e.ti.com/.../test_5F00_pm_5F00_tms320c6678.zip

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    因为已经有一段时间了,我想你已经解决了这个问题。 非常感谢您的解决。

    谢谢、此致、

    乔治
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    感谢您的回答。 是的、您的项目(令人惊讶)正常工作。
    我将尝试了解您和我的项目之间的区别。 如果没有明显的区别、我将从所有有意义的完整细节中清理我们的项目、并向您发送一个残桩。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    感谢您的项目!

    通过与我的项目进行仔细比较、我发现我的.cproject 文件 包含特定于文件的编译选项以及一些源文件的自定义编译设置:

    
    
    
    
    
    

    启用"程序模式编译"后、Code Composer 会考虑并仅编译具有专用选项的文件和文件夹、而忽略所有其他文件和文件夹。

    我找不到使用 CCS 环境删除这些自定义编译选项的方法、但文本编辑器会有所帮助-手动编辑.cproject 和删除相应的选项可以编译工程。

    非常感谢您的帮助!