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.

[参考译文] 编译器/TM4C129ENCPDT:包含电视代码

Guru**** 2609285 points


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

https://e2e.ti.com/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/758527/compiler-tm4c129encpdt-incorporating-telnetd-code

器件型号:TM4C129ENCPDT

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

您好!  

我已基于正在运行的 enet_weather 示例程序构建了一个项目。 我添加了对 SMTP 和一些 UDP 命令以及一些其他应用程序代码的支持。 我正在尝试将 Telnet 功能添加到项目中。 我在 c:ti/TivaWare_C_Series-2.1.4.178/third_party/UIP-1.0/apps/telnetd 目录中找到了一些 Telnet 代码。 我在 ARM 编译器-包含选项中添加了 telnetd 目录的路径。 telnetd 目录包含文件 telnetd.c、telnetd.h、shell.c 和 shell.h 我还向 ARM 编译添加了条目-包含选项、以便对 telnet 和 shell 文件中列出的其他几个包含文件进行所有访问。 我能够成功编译程序,但在链接时将函数 telnetd_init()添加到代码时,程序始终失败。 在我的控制台窗口中、我看到它正在调用:ARM 连接器。 我收到错误10234-D:未解析的符号仍然存在,错误10010:链接过程中遇到错误。 由于 telnetd_init()作为未解析的符号出现,因此失败。

我假设我需要在 ARM 连接器-文件搜索路径中添加一些条目、要么是到-库、要么是到- 搜索路径、但我不知道要向这两个窗口中的任何一个添加什么、以解决我的目标文件引用 telnetd_init 的问题、因为它无法找到函数的定义。  

作为参考、我在 msg_in.c 文件中的 c:ti/TivaWare_C_Series-2.1.4.178/third_party/lwip-1.4.1/src/core/SNMP 目录下的项目中成功使用了 snmp_init() 我能够使用在 ARM 链接器-文件搜索路径窗口中显示为默认设置的内容来编译此文件和该函数并将其链接到我的项目中。 在我的 ARM 链接器中、我有一个 driverlib.lib、libc.a 以及 CG_TOOL_ROOT/ lib 和/include 的路径。  

我更喜欢从 telnetd 目录中引用这些文件、而不是制作一份副本并将其添加到我的项目中、我希望这些文件能够真正起作用。

如果您有任何关于如何将 telnetd 文件链接到我的项目的建议、我们将不胜感激。 我在论坛上下搜索了一个可能的解决方案、但运气不好

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

    我做了更多的测试、我意识到问题不是链接器问题、而是编译器问题。 编译器似乎没有编译 c:ti/TivaWare_C_Series-2.1.4.178/third_party/UIP-1.0/apps/telnetd 目录中的任何代码。 我能够从 IDE 中打开 telentd.c、当我在 telnetd.c 中强制执行编译错误时、编译器未找到该错误、并给了我一个链接错误。 我在没有编译器故障的情况下在 shell.c 中尝试了相同的问题。

    似乎我可以包含来自 uip1.0目录的文件、但在编译期间它们实际上不是我的项目的一部分。

    我一直在使用 CCS 的免费许可证、因此我想知道是否存在一些限制。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    将文件添加到"Include Options"会告诉编译器另一个查找包含文件的位置、但不会将该目录中的源文件添加到工程中。 您只需将 C 文件复制到项目中即可。 您可以将它们"拖放到"Project Explorer"中。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好、Michael、

    为了添加到 Bob 的评论中、我还介绍了有关如何将文件正确链接到 CCS 工程的基础知识。 我的示例是 UART util、但对于 telnetd 文件 e2e.ti.com/.../2787705、这些步骤应该完全相同