【发布时间】:2020-11-25 17:02:16
【问题描述】:
我已经用 vcpkg 安装了点云库。我使用命令行“vcpkg install pcl:x64-windows”并将所有其他库与 PCL 一起安装。之后,我使用“.\vcpkg\vcpkg 集成安装”让所有库直接在我的 Visual Studio 2019 项目中运行。事实上,我的项目(包含 https://pcl.readthedocs.io/projects/tutorials/en/latest/writing_pcd.html#writing-pcd 的示例演示代码)在命令之后正确包含了两个头文件并且没有显示任何问题。 然而,在运行代码之后,我得到了一堆与 boost 库相关的错误,例如:
Error C2116 'boost::interprocess::winapi::GetFileSizeEx': function parameter lists do not match between declarations RegistrationAlgorithm C:\Program Files (x86)\Windows Kits\10\Include\10.0.18362.0\um\fileapi.h
Error C2733 'CreateSemaphoreA': you cannot overload a function with 'C' linkage RegistrationAlgorithm C:\vcpkg\vcpkg\installed\x64-windows\include\boost\interprocess\detail\win32_api.hpp
Error C4996 '_open': This function or variable may be unsafe. Consider using _sopen_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details. RegistrationAlgorithm C:\vcpkg\vcpkg\installed\x64-windows\include\pcl\io\low_level_io.h
这里提出了相同的问题(相同的示例代码,相同的错误):point cloud library not working in VS 2019 but does work in VS 2017
但是,他设法通过从 VS2019 构建工具 (v142) 切换到 Visual Studio 2017 构建工具 (v141) 使其正常工作。我下载了 v141 并切换了,但仍然遇到相同的错误。
有什么建议吗?
我尝试让代码通过 CMake 运行,但在这个过程中我遇到了更多错误。
【问题讨论】:
-
有什么建议吗?您可能想在 vcpkg github 页面上发布错误报告
标签: c++ visual-studio point-cloud-library boost-interprocess vcpkg