cmake_minimum_required(VERSION 3.10) project(disparity)
add_executable(main disparity.cpp)
find_package(OpenCV REQUIRED)
find_package(Eigen3 REQUIRED)
include_directories(${OpenCV_INCLUDE_DIRS}) include_directories(${EIGEN3_INCLUDE_DIRS}) target_link_libraries(main ${OpenCV_LIBS} ) 再添加#include <pangolin/pangolin.h> #include <unistd.h>
要让 pangolin 在 CMake 中正确链接并使用,你需要在 CMakeLists.txt 中添加对 Pangolin 的查找和链接。下面是更新后的 CMakeLists.txt,包括你新增的 #include <pangolin/pangolin.h> 和 #include <unistd.h> 所需的依赖配置:
cmake_minimum_required(VERSION 3.10)
project(disparity)
# 添加可执行文件
add_executable(main disparity.cpp)
# 查找 OpenCV
find_package(OpenCV REQUIRED)
# 查找 Eigen3
find_package(Eigen3 REQUIRED)
# 查找 Pangolin
find_package(Pangolin REQUIRED)
# 包含头文件目录
include_directories(${OpenCV_INCLUDE_DIRS})
include_directories(${EIGEN3_INCLUDE_DIRS})
include_directories(${Pangolin_INCLUDE_DIRS})
# 链接库
target_link_libraries(main ${OpenCV_LIBS} ${Pangolin_LIBRARIES})
确保你已安装 Pangolin:
sudo apt install libpangolin-dev
git clone https://github.com/stevenlovegrove/Pangolin.git
cd Pangolin
mkdir build && cd build
cmake ..
make -j$(nproc)
sudo make install
<unistd.h> 是 POSIX 标准头文件,通常不需要额外链接库,Linux/macOS 下直接可用。
如果你使用的是较新版本的 Pangolin(>= 0.6),find_package(Pangolin REQUIRED) 会自动设置 Pangolin::pangolin 目标,推荐使用现代 CMake 方式:
target_link_libraries(main ${OpenCV_LIBS} Pangolin::pangolin)
你可以根据实际 Pangolin 版本选择是否使用 Pangolin_LIBRARIES 或 Pangolin::pangolin。