Cmake找不到带错误消息的库路径

问题描述

我尝试将库(PCL)添加到我的cmake,但是在尝试构建时会引发以下错误

C/C++ debug|armeabi-v7a : CMake Error at C:\Users\xxx\ndktest\app\src\main\cpp\CMakeLists.txt:48 (find_package):
By not providing "FindPCL.cmake" in CMAKE_MODULE_PATH this project has
asked CMake to find a package configuration file provided by "PCL",but
CMake did not find one.

Could not find a package configuration file provided by "PCL" (requested
version 1.3) with any of the following names:

PCLConfig.cmake
pcl-config.cmake

Add the installation prefix of "PCL" to CMAKE_PREFIX_PATH or set "PCL_DIR"
to a directory containing one of the above files.  If "PCL" provides a
separate development package or SDK,be sure it has been installed.

这是我的cmake的样子(我已经尝试设置PLC_DIR并仍然有相同的错误消息):

cmake_minimum_required(VERSION 3.4.1)
add_library( native-lib SHARED native-lib.cpp )
find_library(log-lib log )
target_link_libraries(native-lib ${log-lib} )

set(PCL_DIR "C:\\Program Files\\PCL 1.6.0\\cmake\\PCLConfig.cmake")
find_package(PCL 1.3 required COMPONENTS common io)
include_directories(${PCL_INCLUDE_Dirs})
link_directories(${PCL_LIBRARY_Dirs})
add_deFinitions(${PCL_DEFinitioNS})
add_executable(pcd_write_test pcd_write.cpp)
target_link_libraries(pcd_write_test ${PCL_LIBRARIES})

我正在运行windows 10,并试图将PCL包含到Android项目中

有人建议为什么找不到pcl库?

编辑:我使用vcpkg安装了库PCL,我注意到我指的是错误的PCL库。现在,我指向安装有vcpkg的PCL库,而我的CMAKE现在看起来像这样:

cmake_minimum_required(VERSION 3.4.1)
add_library( native-lib SHARED native-lib.cpp )
find_library(log-lib log )
target_link_libraries(native-lib ${log-lib} )


set(PCL_DIR "C:\\Users\\xxx\\Desktop\\pclndk\\vcpkg\\packages\\pcl_x86-windows\\share\\pcl")
find_package(PCL 1.3 required COMPONENTS)
include_directories(${PCL_INCLUDE_Dirs})
link_directories(${PCL_LIBRARY_Dirs})
add_deFinitions(${PCL_DEFinitioNS})
add_executable(pcd_write_test pcd_write.cpp)
target_link_libraries(pcd_write_test ${PCL_LIBRARIES})

运行此命令时,错误消息发生变化(猜测它找到了PCL,但找不到pcl所需的库(Eigen)):

C:\Users\xxx\ndktest\app\src\main\cpp\CMakeLists.txt : C/C++ debug|armeabi-v7a : CMake Error at C:/Users/xxx/Desktop/pclndk/vcpkg/packages/pcl_x86-windows/share/pcl/PCLConfig.cmake:56 (message):
  common is required but eigen was not found
Call Stack (most recent call first):
  C:/Users/xxx/Desktop/pclndk/vcpkg/packages/pcl_x86-windows/share/pcl/PCLConfig.cmake:356 (pcl_report_not_found)
  C:/Users/xxx/Desktop/pclndk/vcpkg/packages/pcl_x86-windows/share/pcl/PCLConfig.cmake:524 (find_external_library)
  CMakeLists.txt:10 (find_package)

我尝试添加set(EIGEN_DIR "C:\\Users\\xxx\\Desktop\\pclndk\\vcpkg\\installed\\x86-windows\\share\\eigen3")set(EIGEN_DIR "C:\\Users\\xxx\\Desktop\\pclndk\\vcpkg\\installed\\x86-windows\\share\\eigen3"),但仍会显示相同的错误消息common is required but eigen was not found。有什么想法吗?

EDIT2:将PCL_DIR设置为set(PCL_DIR "C:\\Users\\xxx\\Desktop\\pclndk\\vcpkg\\installed\\x86-windows\\share\\pcl")也会产生相同的结果

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)