1、CMakeLists.txt中find_packate(Opencv 3.4.12 REQUIRED) 无法找到,需要手动设置opencv路径。
在CMakeLists.txt中添加如下代码,即可解决问题
set(OpenCV_DIR "your_install_path/share/OpenCV")
2、编译中出现另外一个错误 usr/bin/ld: context.cpp:in function 'flann::serialization::SaveArchive::initBlock()' context.cpp: undefined reference to 'LZ4_resetStreamHC',此错误主要是因为LZ4库没有正确链接。
首先,确保自己系统中安装LZ4库,通过一下进行安装
sudo apt install liblz4-dev
然后在CMmakeLists.txt中链接LZ4库,随后编译即可解决问题。
# 指定LZ4库的根目录路径
set(LZ4_ROOT "/usr")
# 添加LZ4库的头文件路径
include_directories(${LZ4_ROOT}/include)
# 添加您的可执行文件或库的构建规则
add_executable(YourTargetName your_source_files.cpp)
# 链接LZ4库到您的目标
target_link_libraries(YourTargetName PRIVATE ${LZ4_ROOT}/lib/x86_64-linux-gnu/liblz4.so)
3、遗留问题,在两个CMakeLists.txt中同样find_package(Flann 1.9.1 REQUIRED),一个pcakage能够编译过,另外一个pcakage无法编译过,显示无法找到Flann,不知道是不是因为其中一个package已经include了编译通过Flann的package,如果有有经验的朋友,欢迎指导。