搜索
查看: 1133|回复: 0

[原创] IAR EWARM链接警告:如何解决Warning [Lt009] Inconsistent wchar_t size

[复制链接]

该用户从未签到

39

主题

173

帖子

2

蝴蝶豆

金牌会员

最后登录
2021-3-29
发表于 2020-7-9 15:25:50 | 显示全部楼层 |阅读模式
在EWARM 8.x的版本调用EWARM7.x生成的库会出现“Warning [Lt009] Inconsistent wchar_t size”链接器警告,原因是wchar_t在EWARM v7.xx和EWARM v8.11及之后版本的大小和编码不同。

EWARM v7.80和更早的版本,wchar_t的大小是两个字节,在EWARM v8.11及之后的版本是四个字节。此外,这些版本对wchar_t对象的内部编码也不同。

也就是说,用v7.80和v8.11构建的目标文件组合起来将生成一个链接器警告,如果应用程序使用wchar_t,则该行为将是不可预测的。通常,强烈建议只使用一个版本的目标代码。对于像v7.8到v8.11这样的大的升级,应该重新构建所有代码。

如果选择不重构全部的代码,那么至少也要采取以下的操作:
(1) 在版本v7用C++重新构建库的代码
(2) 如果库确实包含wchar_t,则使用v8.11版本重新构建库
(3) 如果库是用v7构建,不包含wchar_t,而且使用v8.11(或更高版本)构建的应用程序实际上可以正常工作,在这种情况下可以选择忽略警告消息。要抑制警告消息,可以按照如下操作:
a. 选择Project>Options>Linker>
Diagnostics>
b. 选择Suppress these diagnostics并指定“Lt009”
c. 点击OK
注意:EWARM生成的库中使用了wchar_t,就必须进行重构才能在v8.11及后面的版本上使用。

回复

使用道具 举报

您需要登录后才可以回帖 注册/登录

本版积分规则

关闭

站长推荐上一条 /3 下一条

Archiver|手机版|小黑屋|论坛-意法半导体STM32/STM8技术社区

GMT+8, 2024-4-27 04:52 , Processed in 0.142421 second(s), 29 queries .

Powered by Discuz! X3.4

Copyright © 2001-2024, Tencent Cloud.

快速回复 返回顶部 返回列表