使用vcpkg安装RTABMap后,VSCode中C++项目CMake构建失败求助
解决vcpkg安装RTABMap后CMake找不到
RTABMap_CORE_RELEASE等变量的问题 以下是针对性的排查和解决步骤:
1. 修正CMakeLists.txt的写法
不要直接引用RTABMap_CORE_RELEASE这类旧版变量,vcpkg打包的RTABMap通常使用现代CMake目标,改用目标链接方式:
cmake_minimum_required(VERSION 3.15) project(rtabmap_demo) # 查找RTABMap包 find_package(RTABMap REQUIRED) # 添加可执行文件 add_executable(${PROJECT_NAME} main.cpp) # 链接RTABMap的官方目标 target_link_libraries(${PROJECT_NAME} PRIVATE RTABMap::RTABMap RTABMap::RTABMapCore)
2. 确认vcpkg工具链正确加载
- 命令行构建:必须显式指定vcpkg工具链文件,示例:
cmake -S . -B build -DCMAKE_TOOLCHAIN_FILE=[你的vcpkg根目录]/scripts/buildsystems/vcpkg.cmake -DVCPKG_TARGET_TRIPLET=x64-windows - VSCode配置:在
.vscode/settings.json中确保工具链和三元组正确设置:{ "cmake.toolchainPath": "D:/vcpkg/scripts/buildsystems/vcpkg.cmake", "cmake.vcpkgTriplet": "x64-windows" }
3. 重装RTABMap并清理缓存
- 卸载现有安装并清理残留:
vcpkg remove rtabmap:x64-windows --purge vcpkg clean - 重新安装:
vcpkg install rtabmap:x64-windows - 删除本地CMake构建目录(如
build文件夹),重新执行CMake配置和构建。
4. 检查RTABMap的CMake配置文件(进阶)
进入[vcpkg根目录]/installed/x64-windows/share/rtabmap,查看RTABMapConfig.cmake文件:
- 如果文件中未定义
RTABMap_CORE_RELEASE等变量,说明vcpkg的RTABMap端口配置未导出这些旧变量,此时优先使用步骤1的现代目标链接方式; - 若必须使用旧变量,可手动在
RTABMapConfig.cmake中添加类似如下内容:set(RTABMap_CORE_RELEASE "${CMAKE_CURRENT_LIST_DIR}/../../lib/librtabmap_core.lib") set(RTABMap_UTILITE_RELEASE "${CMAKE_CURRENT_LIST_DIR}/../../lib/libutilite.lib")
内容的提问来源于stack exchange,提问作者Ruhrpottpatriot
相关产品推荐
相关产品推荐

