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/AM5728:链接器库的 XDCTOOLS 问题

Guru**** 2933120 points

Other Parts Discussed in Thread: SYSBIOS, AM5728

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

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/669682/ccs-am5728-xdctools-issue-with-linker-libraries

器件型号:AM5728
Thread 中讨论的其他器件:SYSBIOS

工具/软件:Code Composer Studio

工具:

  • CCS 7.4
  • XDCTOOLS 3.50.4和3.50.3
  • SYSBIOS 6.52
  • GCC 6.3.1

构建目标:AM5728 Cortex-A15

问题详细信息:

通常我们可以看到、在新创建的 SYSBIOS 工程属性中、GNU 连接器始终链接 libc、因为它是在"Project Properties -> CCS Build -> GNU Linker -> Libraries"中编写的。

但是、在我在"Project Properties -> CCS General -> Products"选项卡中更改 XDCTOOLS 版本(在我的示例中、从3.50.4更改为3.50.3)之后、libc 在某种程度上从 GNU 连接器的 Libraries 设置中消失。

因此、项目构建过程将在链接阶段停止、方法是抛出以下错误(我进行了一些简化):

   newlib/libc/reent/signalr.c:61:未定义对'_kill'的引用。

   newlib/libc/reent/signalr.c:97:未定义对'_getpid'的引用。

   newlib/libc/reent/fstatr.c:62:未定义对'_fstat'的引用。

   newlib/libc/reent/isattyr:58:未定义对'_isatty'的引用。

   newlib/libc/reent/lseek.c:58:对'_lseek'的引用未定义。

   newlib/libc/reent/readr.c:58:对'_read'的引用未定义。

如果我手动将"libc"添加到链接器的库设置中、链接过程将正常。

我认为这个问题可能是 CCS 的某些项目文件重新配置器或生成器的错误。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    RTOS 团队已收到通知。 他们将在这里作出回应。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好!

    我尝试了一个简单的 RTOS hello world、它与-lgcc -lm -lnosys -LC (而不是 libc)链接在一起。 因此、我无法评论、如果您切换不同版本的 XDC 工具、它是否会丢失 libc.a? 如果是这种情况、我认为这是一种不便、但不是一个错误。 感谢您的反馈!

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

    感谢您的回复、是的、当我更改 xdctools 版本时、它会丢失与 libc 对应的-LC 参数。