在使用开源库时,经常会遇到引用 boost 库的代码,配置好 boost 库后开始编译,满屏都是类似下面的报错:
- error C2116: “boost::interprocess::winapi::CreateDirectoryA”: 不同声明之间的函数参数列表不匹配
- error C2116: “boost::interprocess::winapi::CreateFileA”: 不同声明之间的函数参数列表不匹配
- error C2116: “boost::interprocess::winapi::FindFirstFileA”: 不同声明之间的函数参数列表不匹配
- error C2116: “boost::interprocess::winapi::FindNextFileA”: 不同声明之间的函数参数列表不匹配
- error C2116: “boost::interprocess::winapi::UnmapViewOfFile”: 不同声明之间的函数参数列表不匹配
- …
原因很简单,就是 boost 库与 windows 库存在冲突,添加以下 预处理器定义 : BOOST_USE_WINDOWS_H, 即可解决问题。