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/PGA900EVM:奇怪的构建错误

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

https://e2e.ti.com/support/tools/code-composer-studio-group/ccs/f/code-composer-studio-forum/619942/ccs-pga900evm-strange-build-error

部件号:PGA900EVM
主题中讨论的其它部件:Tida-0.0851万PGA900

工具/软件:Code Composer Studio

大家好,当我尝试在CCS中构建项目时,我遇到了这个奇怪的错误。 这很奇怪,因为直到昨天,我在建设我的项目时没有遇到任何问题。 因此我相当肯定这不是我的代码中的问题,而是与项目设置或构建配置相关的问题。 错误详细信息如下所示。

是否有人知道发生了什么问题?


链接时遇到#1.001万错误;"PGA900.out未构建   TIDA-0.0851万_Firmware_4-20mA          C/C++问题

#1.0234万-D未解析的符号仍为   TIDA-0.0851万_Firmware_4-20mA          C/C++问题

未解析的符号__aeabi_cfcmpeq,首先在./source/core/algorith.obj   TIDA-0.0851万_Firmware_4-20mA中引用          C/C++问题

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

    通常,该错误意味着在任何位置都找不到algorith.obj引用的特定符号的定义。 通常,它是在运行时库中定义的。

    我在生成示例项目时没有看到错误。 这可能是因为在示例项目中没有引用该符号。 我在示例中没有看到任何名为"algorith"的源文件,因此我假定它是您添加到自定义项目中的文件。

    您是否正在使用PGA900固件包提供的预构建rtsv6M0_T_le_eabi.lib? 如果是这样,我进行了一些分析,发现软件包中的RTS是使用比5.2 5更旧的链接器版本构建的,并且由于某种原因似乎缺少该符号定义。 您可以更改项目设置,以便在项目生成过程中自动生成使用版本5.2 的更新运行时库。

    为此,请进入“项目属性”->“生成”->“链接器”->“文件搜索路径”,删除RTS库的现有路径,然后添加“libc.a”。 这将告诉链接器在 项目生成时自动生成rtsv6M0_T_le_eabi.lib,这应该可以解决未定义符号错误。

    请告诉我们这是否有帮助。

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

    感谢您的回复。 但它没有解决问题,我仍然收到相同的错误。 是否建议保留libc.a而不是rtsv6M0_T_le_eabi.lib的路径?

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

    您是否建议我保留libc.a而不是rtsv6M0_T_le_eabi.lib的路径?

    我不认为把它留为libc.a.会有什么伤害

    如果您仍需要帮助解决错误,我们需要该项目,以便我们可以先重现问题,然后调查原因。 如果您可以压缩项目并将其附加到此处,我们可以进行查看。

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

    我知道是什么原因造成了这个问题。 这毕竟是我的密码,但我仍然觉得很奇怪。

    所以我在代码中有几个地方,我想检查变量,以确保我不被零除。 如图所示(a和b是无符号短整型,c和d是短整型)。

    如果我取消注释IF语句,则会发生错误。 而且,它是“if (d!= 0.0)”还是“if (d!= 0)"也无关紧要。

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

    您是否意味着即使在链接由构建步骤自动生成的运行时库时也会生成未解析的符号错误? 如果是这种情况,我们仍需要查看完整的项目,以便更好地了解正在发生的情况。

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

    此问题已脱机解决。

    如前所述,链接器错误的根本原因是预先构建的rtsv6M0_T_le_eabi.lib,该rtsv6M0_t_le_eabi.lib是随PGA900固件包提供的,用户正链接到他们的项目中。该RTS库是使用较旧版本的编译器工具构建的,出于某种原因, 缺少用户的项目所引用的符号的定义。 已将使用版本5.2 5编译器工具构建的更新运行时库发送给客户,该库修复了链接器错误。