You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何用VCPKG编译含全点类型的PCL?解决修改后编译报错问题

问题

默认情况下,.\vcpkg\buildtrees\pcl\src\pcl-1.13.1-38090574eb.clean文件夹中的CMakeLists.txt会为MSVC和MINGW定义PCL_ONLY_CORE_POINT_TYPES,但我需要编译支持所有点类型的PCL。我尝试注释掉该定义的代码行:

add_definitions("-DBOOST_ALL_NO_LIB -D_SCL_SECURE_NO_WARNINGS -D_CRT_SECURE_NO_WARNINGS -DNOMINMAX ${SSE_DEFINITIONS}")
#add_definitions("-DBOOST_ALL_NO_LIB -D_SCL_SECURE_NO_WARNINGS -D_CRT_SECURE_NO_WARNINGS -DNOMINMAX -DPCL_ONLY_CORE_POINT_TYPES ${SSE_DEFINITIONS}")

然后使用--editable选项运行VCPKG命令:

.\vcpkg install pcl[vtk]:x64-windows --featurepackages --recurse --editable pcl

但出现了如下编译错误:

-- Configuring x64-windows
-- Building x64-windows-dbg
CMake Error at scripts/cmake/vcpkg_execute_build_process.cmake:134 (message):
    Command failed: C:/dev/vcpkg/downloads/tools/cmake-3.27.1-windows/cmake-3.27.1-windows-i386/bin/cmake.exe --build . --config Debug --target install -- -v -j17
    Working Directory: C:/dev/vcpkg/buildtrees/pcl/x64-windows-dbg
    See logs for more information:
      C:\dev\vcpkg\buildtrees\pcl\install-x64-windows-dbg-out.log

Call Stack (most recent call first):
  installed/x64-windows/share/vcpkg-cmake/vcpkg_cmake_build.cmake:74 (vcpkg_execute_build_process)
  installed/x64-windows/share/vcpkg-cmake/vcpkg_cmake_install.cmake:16 (vcpkg_cmake_build)
  ports/pcl/portfile.cmake:74 (vcpkg_cmake_install)
  scripts/ports.cmake:168 (include)
解决方法
  • 不要直接修改buildtrees临时目录源码:buildtrees是vcpkg的临时构建目录,修改后的内容可能被覆盖,还会导致构建状态不一致。正确的做法是修改ports/pcl下的portfile.cmake或添加补丁文件。
  • 通过portfile传递编译参数:
    打开.\vcpkg\ports\pcl\portfile.cmake,找到vcpkg_cmake_configure的调用块,将-DPCL_ONLY_CORE_POINT_TYPES=OFF添加到OPTIONS列表中,示例如下:
    vcpkg_cmake_configure(
        SOURCE_PATH "${SOURCE_PATH}"
        OPTIONS
            -DPCL_ONLY_CORE_POINT_TYPES=OFF
            # 保留原有其他OPTIONS参数
    )
    
  • 清理旧构建缓存:删除buildtrees/pcl和packages/pcl_x64-windows相关目录,避免之前的缓存干扰新构建。
  • 重新执行安装命令:无需使用--editable选项,直接运行:
    .\vcpkg install pcl[vtk]:x64-windows --featurepackages --recurse
    
  • 查看详细日志定位具体错误:如果仍报错,打开C:\dev\vcpkg\buildtrees\pcl\install-x64-windows-dbg-out.log,日志里会有具体的编译错误信息(比如依赖缺失、代码语法问题等),根据实际错误针对性修复。

内容的提问来源于stack exchange,提问作者TheHoff

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.26 09:20:56