Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

CMake - FLANN library does not build (for PCL library)

I am a novice to CMake, so I always prefer to use the CMake GUI.

I am actually setting up the Point Cloud Library (PCL). However, it requires a few other dependency libraries, and one among them was FLANN -> Git Link FLANN

What I have done until now is:

  1. Downloaded the souces from the link: Git Link FLANN
  2. Created a build directory
  3. Set CMake SOURCE code path - C:/PCL/flann-master

    Set CMake Build binaries path - C:/PCL/flann-master/build

  4. Checked the Grouped and Advanced options
  5. Configure

enter image description here

It gave the following error:

CMake Warning (dev) at CMakeLists.txt:17 (if):
  Policy CMP0054 is not set: Only interpret if() arguments as variables or
  keywords when unquoted.  Run "cmake --help-policy CMP0054" for policy
  details.  Use the cmake_policy command to set the policy and suppress this
  warning.

  Quoted variables like "MSVC" will no longer be dereferenced when the policy
  is set to NEW.  Since the policy is not set the OLD behavior will be used.
This warning is for project developers.  Use -Wno-dev to suppress it.

CMake Warning (dev) at CMakeLists.txt:21 (if):
  Policy CMP0054 is not set: Only interpret if() arguments as variables or
  keywords when unquoted.  Run "cmake --help-policy CMP0054" for policy
  details.  Use the cmake_policy command to set the policy and suppress this
  warning.

  Quoted variables like "MSVC" will no longer be dereferenced when the policy
  is set to NEW.  Since the policy is not set the OLD behavior will be used.
This warning is for project developers.  Use -Wno-dev to suppress it.

CMake Error at C:/Program Files/CMake/share/cmake-3.13/Modules/FindPackageHandleStandardArgs.cmake:137 (message):
  Could NOT find PkgConfig (missing: PKG_CONFIG_EXECUTABLE)
Call Stack (most recent call first):
  C:/Program Files/CMake/share/cmake-3.13/Modules/FindPackageHandleStandardArgs.cmake:378 (_FPHSA_FAILURE_MESSAGE)
  C:/Program Files/CMake/share/cmake-3.13/Modules/FindPkgConfig.cmake:39 (find_package_handle_standard_args)
  CMakeLists.txt:149 (find_package)

My question is: What do I need to do in order for it to build it?

like image 547
Joker Avatar asked Oct 16 '22 09:10

Joker


1 Answers

I have build FLANN (x64) on windows (with Visual Studio 2015) this way:

in main CMakeLists.txt I have comment out lz4 section like this:

#if( NOT WIN32)
#  find_package(PkgConfig REQUIRED)
#  pkg_search_module(LZ4 REQUIRED liblz4)
#endif()

I have copied lz4.h, lz4hc.h, lz4.c and lz4hc.c to ./src/cpp/flann/util directory

Now I have generated Visual Studio solutions and in flann solution, I have manually added lz4.c and lz4hc.c to sources. (If you want to build bindings and other parts of FLANN library, add the same sources to their solutions as well).

Build projects and it will correctly build.

like image 133
Martin Perry Avatar answered Oct 18 '22 13:10

Martin Perry