PointCloudLibrary / pcl

Point Cloud Library (PCL)
https://pointclouds.org/
Other
10k stars 4.62k forks source link

[compile error] "Cannot open include file: "flann/util/params. h": No such file or directory" #5470

Open munitioner opened 2 years ago

munitioner commented 2 years ago

Operating environment qt5.15.2+pcl1.12.1+vtk9.1 vtk9.1 Compile with cmake+vs2022

QT CMakeLists.txt find_package(PCL 1.12.1 REQUIRED COMPONENTS common io) include_directories(${PCL_INCLUDE_DIRS}) link_directories(${PCL_LIBRARY_DIRS}) add_definitions(${PCL_DEFINITIONS}) link_directories(${PCL_LIBRARY_DIRS})

Compilation Error D:\Program Files (x86)\PCL 1.12.1\include\pcl-1.12\pcl\kdtree\kdtree_ flann. h: 44: error: C1083: Cannot open the include file: "flann/util/params. h": No such file or directory

mvieth commented 2 years ago

Seems to be the same problem as in this issue: https://github.com/PointCloudLibrary/pcl/issues/4620 Please see there for suggestions

munitioner commented 2 years ago

Seems to be the same problem as in this issue: #4620 Please see there for suggestions

Hello, thank you for reminding me, but my pcl was not installed through vcpkg. I downloaded PCL-1.12.1-AllInOne-msvc2019-win64.exe directly to install it

mvieth commented 2 years ago

Seems to be the same problem as in this issue: #4620 Please see there for suggestions

Hello, thank you for reminding me, but my pcl was not installed through vcpkg. I downloaded PCL-1.12.1-AllInOne-msvc2019-win64.exe directly to install it

The person who opened that issue also used the all-in-one installer. I quote:

when using the all one installer. I found an issues with flann

So please, check that issue page again, especially the comment from larshg. Also, if you can't make it work with the all-in-one installer, have you tried removing that and using vcpkg instead?

munitioner commented 2 years ago

Thanks for reminding me, but it didn't solve my problem

mvieth commented 2 years ago

Thanks for reminding me, but it didn't solve my problem

So what exactly did you try? Did you try using vcpkg instead of the all-in-one installer? Or did you try the guide linked in larshg's comment:

For a guide using All-In-On-Installer please look at the following: https://github.com/PointCloudLibrary/pcl/issues/4462

Please describe more precisely what you tried and what the result was. If you are so vague, I don't know what solution I should recommend to you.

munitioner commented 2 years ago

Thanks for reminding me, but it didn't solve my problem

So what exactly did you try? Did you try using vcpkg instead of the all-in-one installer? Or did you try the guide linked in larshg's comment:

For a guide using All-In-On-Installer please look at the following: #4462

Please describe more precisely what you tried and what the result was. If you are so vague, I don't know what solution I should recommend to you.

I tried to install pcl with vcpkg. The installation was successful, but the following error was prompted when referencing pcl in cmakelists.txt CMakeLists.txt:47: error: 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" 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.

find_package(PCL CONFIG REQUIRED) target_link_libraries(main PRIVATE ${PCL_LIBRARIES})

larshg commented 2 years ago

Have you suppliee this to cmake when calling it: DCMAKE_TOOLCHAIN_FILE=[path to vcpkg]/scripts/buildsystems/vcpkg.cmake ?

munitioner commented 2 years ago

Have you suppliee this to cmake when calling it: DCMAKE_TOOLCHAIN_FILE=[path to vcpkg]/scripts/buildsystems/vcpkg.cmake ?

My project is QT and the compilation method is camke. How do I configure DCMAKE in camkelists.txt TOOLCHAIN FILE?

munitioner commented 2 years ago

Have you suppliee this to cmake when calling it: DCMAKE_TOOLCHAIN_FILE=[path to vcpkg]/scripts/buildsystems/vcpkg.cmake ?

This is the code referencing PCL library in my CMakeLists.txt set(CMAKE_TOOLCHAIN_FILE D:/vcpkg/vcpkg/scripts/buildsystems/vcpkg.cmake) find_package(PCL 1.12 REQUIRED COMPONENTS common io) include_directories(${PCL_INCLUDE_DIRS}) link_directories(${PCL_LIBRARY_DIRS}) add_definitions(${PCL_DEFINITIONS}) link_directories(test ${PCL_LIBRARY_DIRS})

But the same error will be reported G:\Project\zxtx_autocar\src\CMakeLists.txt:47: error: 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.12) 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.