我正在使用MODBUS2库进行项目开发,我想向其中添加FatFs库以与SD卡接口(interface)。这两个库都分别对SHORTshort使用标识符int,并且编译器抛出此错误:

#258 invalid redeclaration of type name "SHORT"

我该如何解决?

最佳答案

您需要以这样一种方式重组项目,即库的翻译单元不必包含两个库的 header (翻译单元是C文件的奇特名称)。

一种方法是围绕MODBUS2和FatFs功能编写您自己的精简“包装器”功能。每个包装器都必须包含要包装的库的 header ,因此不会发生编译时冲突。然后,库的主模块将对您的“包装器”进行编程,而根本不包括MODBUS2或FatFs头文件。

关于C项目-两个库对不同类型使用相同的typedef标识符,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/48305734/

10-09 08:42