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/TM4C129ENCZAD:如何解决链接器错误-未解决的符号

Guru**** 2540720 points
Other Parts Discussed in Thread: SYSBIOS

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

https://e2e.ti.com/support/tools/code-composer-studio-group/ccs/f/code-composer-studio-forum/578229/ccs-tm4c129enczad-how-to-resolve-linker-errors---unresolved-symbols

部件号:TM4C129ENCZAD
“Thread:SysBIOS”中讨论的其它部件

工具/软件:Code Composer Studio

我正在尝试构建包含在CCS V7安装 中的uartecho示例(C:\TI_CCS\TIrtos_tivac_2_16_01_14\packages\examples\sources\uartecho),其中包括uartecho.c和相应的.cfg文件。 我创建了一个新的空CCS项目,并将这两个文件添加到该项目中。 我必须在Propertie-ARM编译器中添加编译器的include路径,并将board.h文件添加到项目中, 以完成编译步骤(使用“如何构建”自述文件可能会很有帮助)。 但是,编译后,问题控制台中列出了~100个未解决的符号错误。 我认为我需要将每个缺失符号的报告文件夹的路径添加到“属性- ARM链接器标志”窗口中???  如果是,有人能告诉我如何正确编辑标志窗口和路径的正确语法吗? 如果情况并非如此,那么希望详细说明(转到此菜单,选择此选项等)解决此问题所需采取的措施。

链接错误之一的示例:
未解析的符号GPIOIntStatus,首先在C:/TI_CCS/tirtos_tivac_2_16_01_14/products/tidrivers_tivac_2_16_01_13/packages/ti/drivers/lib/drivers_tivaware.aem4f<GPIOTIVA.oem4f>UART_echo中引用             C/C++问题


谢谢你。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    更新:
    上述未解析的符号GPIOIntStatus,在中首先引用
    C:/TI_CCS/TIrtos_tivac_2_16_01_14/products/tidrivers_tivac_2_16_01_13/packages/ti/drivers/
    lib/drivers_tivaware.aem4f
    该引用的文件路径位于Properties (属性) ARM Linker File Search Path (链接器文件搜索路径)中。 我在TivaWare外设驱动程序库指南中发现,GPIOIntStatus是外设库的一部分,指定为/driverlib。 因此,我将路径添加到/driverlib中,在2.1 “属性”ARM链接程序添加路径窗口中,路径为C:\TI_CCS\TIrtos_tivac_2_16_01_14\products\TivaWare_C_Serie-Line.1.71b\driverlib,但没有任何帮助,仍然得到相同的100个未解析的符号。

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

    更新2:
    以下是uartecho的linker.cmd文件中的活动行:
    -l"E:\projects\SW_WkSpace\UART_ECHO\Debug\configPkg\package\config\uartecho_pem4f.oem4f"
    -l" C:/TI_CCS/TIrtos_tivac_2_16_01_14/products/tidrivers_tivac_2_16_01_13/packages/ti/MW/wifi/cc3x00/lib/cc3x00_host_driver.aem4f"
    -l"C:\TI_CCS\TIrtos_tivac_2_16_01_14\products\uia_2_00_05_50\packages\ti\uia\SysBIOS\lib\release\ti.uia.SysBIOS.aem4f"
    -l"C:\TI_CCS\TIrtos_tivac_2_16_01_14\products\uia_2_00_05_50\packages\ti\uia\loggers\lib\release\tia.uia.loggers.aem4f"
    -l" C:/TI_CCS/tirtos_tivac_2_16_01_14/products/tidrivers_tivac_2_16_01_13/packages/ti/drivers/lib/drivers_tivaware.aem4f"
    -l" C:/TI_CCS/tirtos_tivac_2_16_01_14/products/tidrivers_tivac_2_16_01_13/packages/ti/drivers/lib/drivers_wifi_tivaware.aem4f"
    -l"C:\TI_CCS\TIrtos_tivac_2_16_01_14\products\tidrivers_tivac_2_16_01_13\packages\ti\mw\fatfs\lib\release\tiMW.fatfs.aem4f"
    -l" C:/TI_CCS/tirtos_tivac_2_16_01_14/products/tidrivers_tivac_2_16_01_13/packages/ti/drivers/ports/lib/tirtosport.aem4f"
    -l"E:\projects\SW_WkSpace\UART_ECHO\src\SysBIOS\SysBIOS.aem4f"
    -l"C:\TI_CCS\TIrtos_tivac_2_16_01_14\products\BIOS_6_45_02_31\packages\ti\catalog\arm\cortexm4\TIVA\ce\lib\Boot.aem4f"
    -l"C:\TI_CCS\TIrtos_tivac_2_16_01_14\products\uia_2_00_05_50\packages\ti\uia\services\lib\release\ti.uia.services.aem4f"
    -l"C:\TI_CCS\TIrtos_tivac_2_16_01_14\products\uia_2_00_05_50\packages\ti\uia\runtime\lib\release\ti.uia.runtime.aem4f"
    -l"C:\TI_CCS\TIrtos_tivac_2_16_01_14\products\uia_2_00_05_50\packages\ti\uia\events\lib\release\tiuia.events.aem4f"
    -l"C:\TI_CCS\TIrtos_tivac_2_16_01_14\products\BIOS_6_45_02_31\packages\ti\targets\arm\rtsarm\lib\ti.targets.arm.rtsarm.aem4f"
    -l"C:\TI_CCS\TIrtos_tivac_2_16_01_14\products\BIOS_6_45_02_31\packages\ti\targets\arm\rtsarm\lib\boot.aem4f"
    -l"C:\TI_CCS\TIrtos_tivac_2_16_01_14\products\BIOS_6_45_02_31\packages\ti\targets\arm\rtsarm\lib\auto_init.aem4f"

    --retain="*(XDC)"

    /* C6x Elf符号*/
    --symbol_map __TI_stack_size=__stack_size
    --symbol_map __TI_stack_bas=__stack
    --symbol_map _stack=__stack


    --args 0x0
    堆0x0
    堆栈0x300

    -保留"*(.vecs)"

    xdc_runtime启动__EXECFXN__C = 1;
    xdc_runtime启动__RESETFXN__C = 1;


    章节

    bootVecs:类型= DSECT
    vectra:加载> 0x2000万
    .resetVecs:load > 0x0

    xdc.meta:类型=复制
    }

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

    您好Erik

    [报价用户="Erik skullerude"]我在《TivaWare外设驱动程序库指南》中发现,GPIOIntStatus是外设库的一部分,被指定为/driverlib。 因此,我将路径添加到/driverlib中,在2.1 “属性”ARM链接程序添加路径窗口中,路径为C:\TI_CCS\TIrtos_tivac_2_16_01_14\products\TivaWare_C_Serie-Line.1.71b\driverlib,但仍然得到相同的100个未解析的符号。

    您需要引用实际库,而不仅仅是添加其路径。 该库位于.\tirtos_tivac_2_16_01_14\products\TivaWare_C_Series-Tiv.1.71b\driverlib\CCS\Debug\driverlib.lib 2.1

    在ARM链接器文件搜索路径中,您可以在2.1 第二个搜索路径中为第一个字段(“--library”)及其路径(“C:\TI_CCS\TIrtos_tivac_2_16_01_14\products\TivaWare_C_Series-Debug.1.71b\driverlib\CCS?)添加“driverlib\CCS”。

    谢谢

    KI

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    注:我在上一篇文章中修复了一些错误。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    感谢您的快速响应。 添加该路径可消除~80个未解决的符号错误。 但还有~16个。 对于这种情况,TivaWare外设驱动程序指南对引用/Driverlib库的符号进行了说明。 所以我想这是一个提示,即在哪里可以找到正确的库? 对于其余16个错误,我不知道如何找出这些案例的库路径,因为符号名称不会出现在TivaWare指南中。 在哪里可以找到给定符号的库路径???? 我搜索了TivaWare外设驱动程序库指南中的几个剩余符号,但没有点击。 搜索论坛,也没有任何信息。 下面是两个示例,它们具有不同的第一参考路径:

    G_sUSBHostMSCClassDriver,最初引用于C:/TI_CCS/tirtos_tivac_2_16_01_14/products/tidrivers_tivac_2_16_01_13/packages/ti/drivers/lib/
    drivers_tivaware.aem4f

    未解析的符号USBHCDInit,首先在C:/TI_CCS/TIrtos_tivac_2_16_01_14/products/tidrivers_tivac_2_16_01_13/packages/ti/drivers/lib/中引用
    drivers_tivaware.aem4f<USBMSCHFatFsTiva.oem4f>


    所有这一切都引出了另一个关于这个uartecho示例的问题。 从试图链接的内容中可以明显看出,这不仅仅是一个简单的串行接口,因为有USB和WiFi等参考。这种情况下使用UART端口0。 我认为该端口可以作为USB到UART正常工作? 我的测试将在一个定制设计的板上进行,该板将端口0仅用作简单串行接口- 2线,RX/TX。 所以,要以这种方式操作该端口,用这个示例设计,所有的USB/WiFi内容是否可以删除?我在uartecha.c示例文件中没有看到任何对它的引用,所以我想知道是否可以在没有所有这些额外内容的情况下构建它? 如果是这样,我是否可以通过删除linker.cmd文件中的文件列表(上面列出该文件的POST中显示的第一组行)来执行此操作?

    最后,当链接程序启动时,我注意到以下错误:
    链接>
    "configPkg/linker.cmd",第166行:错误#1.0099万-D:程序将不适合可用内存。对齐部分".Vecresets"大小0x3c的放置失败,与".intvecs"重叠,大小0x208 (第0页)

    我猜这应该是在单独的线程上,但最终目标是构建并运行此示例设计。 请给出建议,因为我还需要一些关于如何解决此问题的指示。


    谢谢你。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    更新:
    在大量的头部划伤和缠绕之后,我找到了一个平行文件夹,指向上面(解决方案)的driverlib,下面是
    C:\TI_CCS\TIrtos_tivac_2_16_01_14\products\TivaWare_C_Series-Tiv.1.71b\usbib\CCS\Debug 2.1 ,

    使用文件usbib.lib。 已将此添加到链接器文件搜索路径。 现在有~5个错误。 以下两项具有代表性:

    未解析的符号SemPost,首先引用于C:/TI_CCS/tirtos_tivac_2_16_01_14/products/tidrivers_tivac_2_16_01_13/packages/ti/drivers/lib/drivers_tivaware.aem4f<EMACSnow.oem4f>

    未解析的符号ti_SysBIOS_KNL_Mailbox_create,首先引用于C:\TI_CCS/tirtos_tivac_2_16_01_14/products/tidrivers_tivac_2_16_01_13/packages/ti/drivers/lib/drivers_WIFI_tivaware.aem4f<OSI_titos.oem4f>

    目前,我无法找到这两个组织的库房--正如我先前所问的那样,我们应该如何解决这一问题--这一问题的记录在哪里?

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

    [报价用户="Erik skullerude"]
    所有这一切都引出了另一个关于这个uartecho示例的问题。 从试图链接的内容中可以明显看出,这不仅仅是一个简单的串行接口,因为有USB和WiFi等参考。这种情况下使用UART端口0。 我认为该端口可以作为USB到UART正常工作? 我的测试将在一个定制设计的板上进行,该板将端口0仅用作简单串行接口- 2线,RX/TX。 所以,要以这种方式操作该端口,用这个示例设计,所有的USB/WiFi内容是否可以删除?我在uartecha.c示例文件中没有看到任何对它的引用,所以我想知道是否可以在没有所有这些额外内容的情况下构建它? 如果是这样,我是否可以通过删除linker.cmd文件中的文件列表(上面列出该文件的POST中显示的第一组行)来执行此操作? [/引述]

    这有点超出了我的专业知识。 我对TivaWare和设备本身的了解不够,无法提供任何好的建议。 我建议在TM4C论坛上发布。 那里的专家可以为您提供最好的帮助。

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

    [引用user="Erik skullerude)]最后,链接程序启动时,我注意到以下错误:
    链接>
    "configPkg/linker.cmd",第166行:错误#1.0099万-D:程序将不适合可用内存。对齐部分".Vecresets"大小0x3c的放置失败,与".intvecs"重叠,大小0x208 (第0页)[/引号]

    此错误在以下链接中说明:

    http://processors.wiki.ti.com/index.php/Build_Errors_in_CCS#Error:_placement_fails_for_section_.22xxx.22

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

    未解析的符号SemPost,最初引用于C:/TI_CCS/tirtos_tivac_2_16_01_14/products/tibdrivers_tivac_2_16_01_13/packages/ti/drivers/lib/drivers_tivaware.aem4f<EMACSnow.oem4f>

    未解析的符号ti_SysBIOS_KNL_Mailbox_create,首先引用于C:\TI_CCS/tirtos_tivac_2_16_01_14/products/tidrivers_tivac_2_16_01_13/packages/ti/drivers/lib/drivers_wifi_tivaware.aem4f<OSI_tos.oem4f>[/报价]

    这些是相关的TI-RTOS。 如上所述,我建议在TM4C论坛上张贴。 那里的专家非常了解您的设备和TivaWare示例。 他们应该能够帮助您开始工作  

    谢谢

    KI