我正在使用MODBUS2 lib开发项目,我想将FatFs lib添加到它以与SD卡连接.这两个库使用标识符SHORT对short和int分别与编译器会引发此错误:
#258 invalid redeclaration of type name "SHORT"
Run Code Online (Sandbox Code Playgroud)
我该如何解决这个问题?
您需要重新构建项目,使您的库的翻译单元不必包含来自两个库的标题(翻译单元是C文件的奇特名称).
一种方法是围绕MODBUS2和FatFs功能编写自己的瘦"包装"函数.每个包装器必须包含它包装的库的头文件,因此不会发生编译时冲突.然后你的库的主模块将编程到你的"包装器",根本不包括MODBUS2或FatFs头.