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/MSP432E411Y:链接时未定义 System_printf

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

https://e2e.ti.com/support/tools/code-composer-studio-group/ccs/f/code-composer-studio-forum/802003/ccs-msp432e411y-system_printf-is-undefined-at-link

器件型号:MSP432E411Y

工具/软件:Code Composer Studio

我将通过 simplelink_mcu_sdk/Users_Guide.html 查看我需要包含的内容、但我运气不好。  我还通过 simplelink_mcu_sdk 安装目录执行了 grep 操作、以查看它可能在何处定义、但运气不好。 我发现有很多调用、但没有实现。

我已导入 CCS 调试项目、并确保使用 SysMin 作为 TI RTOS 的系统部分。

希望有人可以向我指出适当的文档、其中包含有关如何包含 System_printf 的说明。  我查看了 RTOS 用户指南、但这些指南似乎指向 CCSv6的 Tiva 指令。

当然,System_flush()也未定义!

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

    解决了它、但它确实解决了、这让人感到惊讶。 我假设 System.h 中有一些引用在链接时引入另一个目标模块、但不会导致编译器中的未定义引用。 从编译器获得的只是一个警告、即您已隐式定义 System_printf。

    我猜、System.h 实际上有一个预处理器宏、根据其他因素将 System_printf 定义为一些完全不同的函数名称。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您的猜测是正确的... 头文件中有以下内容。

    #define XDC_runtime System_printf XDC_runtime System_printf___E
    #define System_printf XDC_runtime System_printf

    有时需要名称空间保护、人们喜欢使用完全限定的名称。 "_E"是一个不同的故事、我不会向您介绍:)

    Todd

x 出现错误。请重试或与管理员联系。