Other Parts Discussed in Thread: HALCOGEN
器件型号: TMS570LS3137
主题中讨论的其他器件: HALCOGEN
工具链/IDE:
-
Code Composer Studio 12.8.1
-
TIClang 4.0.4.LTS
-
目标:TMS570LS3137PGE
项目环境:
-
固件使用自定义驱动程序(无 HALCoGen)。
-
包含 TI 预编译的 F021 闪存 API 库: F021_API_CortexR4_be.lib (版本 02.01.01)。
问题总结
将 TIClang 编译的对象与 TI 的预编译对象链接时 F021_API_CortexR4_be.lib 、我得到#16032-Derrors 关于不兼容的 wchar_t 类型:
#16032-D 目标文件具有不兼容的 wchar_t 类型
(“F021_API_CortexR4_be.lib<...>"=“=--wchar_t=16、
“app.o"=“=--wchar_t=32)
我测试了添加 TIClang 选项:-fshort-wchar
这使我的对象使用--wchar_t=16、但链接器随后会报告新的错误、表明这一点 TIClang 自己的运行时库 都是针对 32 位 wchar_t 构建的:
divsi3.s.obj in .../libclang_rt.builtins.a =--wchar_t=32
.../libc.a 中的 e_fmod.c.obj =--wchar_t=32
查看所有文件.../libsysbm.a. =--wchar_t=32
因此、即使我匹配 F021 库、TIClang 也无法链接、因为其提供的运行时不支持 16 位 wchar_t
- TIClang 是否官方仅支持 32 位 wchar_t?
- F021 闪存 API 是否使用旧版 TI ARM CGT 工具链 (tiarmcc) 与 16 位 wchar 构建?
- 是否有官方支持的方式将 F021 与 TIClang 链接?
- 在没有-fshort-wchar 的情况下链接我的 TIClang 工程是否安全 并忽略该警告。