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/TMS570LS3134:编译构建配置时出现链接错误

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

https://e2e.ti.com/support/tools/code-composer-studio-group/ccs/f/code-composer-studio-forum/905244/ccs-tms570ls3134-linking-error-during-compiling-in-a-build-configuration

器件型号:TMS570LS3134

工具/软件:Code Composer Studio

您好!

我有一个项目可以编译为两个不同的 TMS570LS31 (34和37、但这并不重要)。 我已经成功完成了、编译并运行了代码等

我现在正在执行一些步骤、以便公司内的其他人可以轻松地使用该代码。 无论如何、我将从头开始执行签出、配置和编译步骤。

因此、我有两个调试配置、一个面向3137、另一个面向3134。 3137在构建时没有任何问题、但3134会为三个函数符号生成编译错误(未解析符号、链接错误#10234-D)。 这些函数是内联的。 我注意到、如果我删除内联符号、编译就会顺利完成。

问题是:我不想修改代码以进行编译(除了我以前在另一个工程中成功编译代码外)。

我看不到我的两个构建配置之间的明显差异(除了针对3137/3134 HAL 代码的某些定义和特定文件链接、这些代码在该错误中没有发挥作用)。

你知道我可以做些什么吗?

此致

Christophe

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

    我在执行以下操作时解决了问题:

    我注意到构建标志的差异:生成错误的构建配置中缺少-g 标志(可在控制台上看到)。

    在 Project Properties / Build / Arm Compiler / Advanced Options / Advanced Debug Options 中、调试模型在两种配置中都设置为完全符号调试(-symdebug:dwarf、-g)、而 DWARF 版本设置为3 (因此、这两种配置中都应设置-g 标志)。

    对于产生错误的配置、我将去抖模型选项更改为任何其他选项、应用和关闭、清理和重建、返回到那里并将调试模型设置回完全符号调试。 应用和关闭、清洁和重建、一切正常。

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

    感谢 Christno 让我们了解您的解决方案、这非常有帮助!

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

    此问题的更新:

    一位同事完成了在新 CCS 项目中签出、配置和编译代码的步骤。

    编译时会生成相同的错误(链接这些内联函数周围的错误)。 不过、我找到的诀窍(如上所述)没有帮助。

    我同事的设置和我的设置之间的区别似乎在于、操作(属性/编译/ ARM 编译器/优化)、在我的设置中已关闭、但在2级是默认设置。 在我的同事中将其关闭就是这样。

    我不知道优化设置为什么不喜欢代码中的内联关键字、或者问题实际上来自看起来的内联关键字。

    此致、

    Christophe

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

    很抱歉耽误你的时间。  不知怎么说、我直到今天才看到这个线程。

    [引用 user="ChristNo">编译时,会生成相同的错误(链接这些内联函数的错误)。 不过、我找到的技巧(如上所述)没有帮助。

    在前面的帖子中、您添加了-g 以进行调试、这解决了该问题。  我无法解释为什么这样做有效。

    [引用 user="ChristNo">我的同事的设置与我的设置之间的区别似乎在于操作(属性/构建/ARM 编译器/优化)、它在我的设置中处于关闭状态、但在第2级是默认设置。 在我的同事设置中将其关闭是个诀窍。

    这是因为内联被禁用。  但这不是必需的。  此外、这意味着您的程序比必要的程序更慢且更大。

    我想重现此问题。  如果将项目重新放入发生错误的配置中、然后提交、我将不胜感激。  要压缩项目、请按照文章 共享项目中的说明进行操作。  然后将 zip 文件附加到您的下一个帖子。

    谢谢、此致、

    乔治