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.

[参考译文] TMS320F28335:从 C2000Ware 链接 rts2800_fpu32_fast_Supplement.lib 和 rts2800_fpu32.lib 会导致链接错误

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

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/1181413/tms320f28335-linking-both-rts2800_fpu32_fast_supplement-lib-and-rts2800_fpu32-lib-from-c2000ware-gives-linking-error

器件型号:TMS320F28335
Thread 中讨论的其他器件:controlSUITEC2000WARE

我正在尝试为 F28335构建代码。 当我同时链接 rts_fpu32_fast_Supplement.lib 和 rts_fpu32.lib 时、我会得到以下链接错误:

错误:重新定义符号"_atanf":首先在中定义
"c2833xBoard_Realtime_Support.obj";在中重新定义
"F:\share\apps\T9BE1P~i\caQMF4~P\C0QH4A~9\libraries\math\FPUfastRTS\c28\lib\
rts2800_fpu32_fast_f늹 up_coff。lib "
错误:重新定义符号"_atan2f":首先在中定义
"c2833xBoard_Realtime_Support.obj";在中重新定义
"F:\share\apps\T9BE1P~i\caQMF4~P\C0QH4A~9\libraries\math\FPUfastRTS\c28\lib\
rts2800_fpu32_fast_f늹 up_coff。lib "
错误:重新定义符号"_cosf":首先在中定义
"c2833xBoard_Realtime_Support.obj";在中重新定义
"F:\share\apps\T9BE1P~i\caQMF4~P\C0QH4A~9\libraries\math\FPUfastRTS\c28\lib\
rts2800_fpu32_fast_f늹 up_coff。lib "
错误:重新定义符号"_sinf":首先在中定义
"c2833xBoard_Realtime_Support.obj";在中重新定义
"F:\share\apps\T9BE1P~i\caQMF4~P\C0QH4A~9\libraries\math\FPUfastRTS\c28\lib\
rts2800_fpu32_fast_f늹 up_coff。lib "
错误:重新定义符号"_sqrtf":首先在中定义
"c2833xBoard_Realtime_Support.obj";在中重新定义
"F:\share\apps\T9BE1P~i\caQMF4~P\C0QH4A~9\libraries\math\FPUfastRTS\c28\lib\
rts2800_fpu32_fast_f늹 up_coff。lib "

但是、如果从 controlSUITEM 中添加了 rts_fpu32_fast_f늹 补.lib、则不会出现此类链接故障。

重新定义来自一个文件、其中我有以下代码片段:

#if DBL_MANT_DIG = FLT_MANT_DIG
float cosf (float x){return cos (x);}
float sinf (float x){return sin (x);}
float sqrtf (float x){return sqrt (x);}
float atanf (float x){return atan (x);}
float atan2f (float y、float x){return atan2 (y、x);}
#endif

c2000Ware 和 controlSUITE 中的库是否存在任何差异。

我期待你的建议。

谢谢、

Mukul Choudhury

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

    请配置编译、以便出现重新定义的符号错误、然后执行编译。  捕获链接器完全调用的文本以及所有系统响应。  将其放入文件扩展名为.txt 的文本文件中。  请勿使用屏幕截图。   该文本文件附加到下一个帖子。

    谢谢、此致、

    乔治

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

    您好!

    当我使用来自 c2000Ware 而不是 controlSUITE 的 rts2800_fpu32_fast_fincrement.lib 时、请查找构建日志。

    e2e.ti.com/.../buildLog28335.txt

    如果您需要任何其他信息、请告诉我。

    谢谢、

    Mukul

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

    您好、Mukul、

    请注意、这是许多人的假日季、因此可能会延迟回复。

    谢谢

    Ki

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

    感谢您提交构建日志。

    请参阅 此论坛帖子。  这是有关与您的问题非常相似的长线程的最终答案。  如果核心应用代码提供 atanf 的实现、它还必须提供 atan 的实现。  其他具有相同重新定义错误的函数也是如此。  另一个需要考虑的解决方案:将核心应用代码更改为不定义 atanf 或 atan、并使它们都来自库。

    谢谢、此致、

    乔治