问题描述

详细信息
错误    C2733    “CreateMutexA”: 无法重载具有外部 "C" 链接的函数    PCL1    D:\PCL 1.8.1\3rdParty\Boost\include\boost-1_64\boost\interprocess\detail\win32_api.hpp    914        


原因分析:

使用 extern "C" 链接声明了多个重载函数。 使用 "C" 链接时,只有指定函数的一种形式是外部的。 由于重载函数具有相同的未修饰名,因此不能与 C 程序一起使用。

由于 Visual Studio 2019 中的一致性更改,升级后可能会出现此错误。

因此使用 Visual Studio 2022可能出现错误。

/Zc:externC 编译器选项检查使用 extern "C" 声明的函数的定义。

从 Visual Studio 2019 版本 16.3 开始,/Zc:externC 选项可用。 未设置 /permissive- 选项时,此选项关闭。


解决方案:

项目右键属性》C/C++>语言》符合模式

修改符合模式为否(/permissive)

更多推荐