Could not find CMake package configuration file for "Eigen3" - cmake

When I enter this command:
cd /Users/mona/ros_catkin_ws/build_isolated/pcl_ros && /Users/mona/ros_catkin_ws/install_isolated/env.sh cmake /Users/mona/ros_catkin_ws/src/perception_pcl/pcl_ros -DCATKIN_DEVEL_PREFIX=/Users/mona/ros_catkin_ws/devel_isolated/pcl_ros -DCMAKE_INSTALL_PREFIX=/Users/mona/ros_catkin_ws/install_isolated -DCMAKE_BUILD_TYPE=Release -G 'Unix Makefiles'
I receive this error:
-- Boost version: 1.58.0
-- Found the following Boost libraries:
-- system
-- filesystem
-- thread
CMake Error at CMakeLists.txt:7 (find_package):
By not providing "FindEigen3.cmake" in CMAKE_MODULE_PATH this project has
asked CMake to find a package configuration file provided by "Eigen3", but
CMake did not find one.
Could not find a package configuration file provided by "Eigen3" with any
of the following names:
Eigen3Config.cmake
eigen3-config.cmake
Add the installation prefix of "Eigen3" to CMAKE_PREFIX_PATH or set
"Eigen3_DIR" to a directory containing one of the above files. If "Eigen3"
provides a separate development package or SDK, be sure it has been
installed.
-- Configuring incomplete, errors occurred!
See also "/Users/mona/ros_catkin_ws/build_isolated/pcl_ros/CMakeFiles/CMakeOutput.log".
This command is ran as part of running this command for installing ROS:
./src/catkin/bin/catkin_make_isolated --install -DCMAKE_BUILD_TYPE=Release
Any idea how that could be fixed?
Please see more details of question here: http://answers.ros.org/question/215080/how-to-add-the-installation-prefix-of-eigen3-to-cmake_prefix_path-or-set-eigen3_dir-to-a-directory-containing-one-of-the-above-files/

For linux users, this may help like it did for me: just install the developers' package of the eigen3 lib by the following command.
sudo apt install libeigen3-dev

You have to install Eigen3. It provides the FindEigen3.cmake file. The error occurs because the project you want to configure, has a dependency to Eigen3.
If you have Eigen3 installed, follow the error message and add Eigen3 to CMake's search path.

Related

Use CMake binares to build cpp projects without installing CMake

I want to use specific version of CMake 3.19.0 for Ubuntu 14.04 (32-bits) without installing CMake (use only binaries).
I tried to build CMake 3.19.0 on my test machine. It builded and installed successfully. In install_manifest.txt I see lot of files that were installed on my test system.
So, I tried to copy only installed binaries from /usr/local/bin/ (this is default path where CMake binaries were installed) and paste it to another machine that doesn't know about CMake. I paste 3 binaries: cmake, ctest, cpack to /usr/local/bin/.
If I run which cmake it shows path:
/usr/local/bin/cmake
If I run cmake --verison it shows:
CMake Error: Could not find CMAKE_ROOT !!!
CMake has most likely not been installed correctly.
Modules directory not found in
/usr/local/share/cmake-3.19
cmake version 3.19.0
CMake suite maintained and supported by Kitware (kitware.com/cmake).
It looks like CMake needs some modules that I haven't copied yet. I tried to build my cpp project and it shows me:
CMake Error: Could not find CMAKE_ROOT !!!
CMake has most likely not been installed correctly.
Modules directory not found in
/usr/local/share/cmake-3.19
CMake Error: Error executing cmake::LoadCache(). Aborting.
What are the minimum required modules needed for stable building? And where I should copy it?
Just copied builded Modules and Templates directories from cmake-3.19.0 build directory to /usr/local/share/cmake-3.19

CMake to find a package configuration file provided by "gazebo", but CMake did not find one

I try build this khancyr/ardupilot_gazebo (github) plugin but I get this error after run sudo cmake ..
I use fedora35 so I cant run apt-get install libgazeboX-dev
what can I do for this problem ?
CMake Error at CMakeLists.txt:11 (find_package):
By not providing "Findgazebo.cmake" in CMAKE_MODULE_PATH this project has
asked CMake to find a package configuration file provided by "gazebo", but
CMake did not find one.
Could not find a package configuration file provided by "gazebo" with any
of the following names:
gazeboConfig.cmake
gazebo-config.cmake
Add the installation prefix of "gazebo" to CMAKE_PREFIX_PATH or set
"gazebo_DIR" to a directory containing one of the above files. If "gazebo"
provides a separate development package or SDK, be sure it has been
installed.
Have you tried running apt-get update && apt-get install ros-foxy-gazebo-ros-pkgs before running your command.

CMake 3.18.0 not finding libopenjpeg2

Please forgive my ignorance when is comes to Cmake. I'm trying to install Poppler 0.86.1 on Centos 7 but I am stuck with an error that says CMake Error at CMakeLists.txt:208 (message): Install libopenjpeg2 before trying to build poppler. I have installed libopenjpeg2 including the dev package by running the following:
sudo yum install openjpeg2-devel
I am taking the following steps to install poppler:
wget https://poppler.freedesktop.org/poppler-0.86.1.tar.xz
tar xf poppler-0.86.1.tar.xz
cd poppler-0.86.1/
mkdir build
cd build
cmake -DCMAKE_BUILD_TYPE=Release ..
Which results in the following error
CMake Error at CMakeLists.txt:208 (message):
Install libopenjpeg2 before trying to build poppler. You can also decide
to use the internal unmaintained JPX decoder or none at all.
-- Configuring incomplete, errors occurred!
This is where the failure occurs in the CMakeLists.txt
if(ENABLE_LIBOPENJPEG STREQUAL "openjpeg2")
find_package(OpenJPEG)
set(WITH_OPENJPEG ${OpenJPEG_FOUND})
if(NOT OpenJPEG_FOUND OR OPENJPEG_MAJOR_VERSION VERSION_LESS 2)
message(FATAL_ERROR "Install libopenjpeg2 before trying to build poppler. You can also decide to use the internal unmaintained JPX decoder or none at all.")
endif()
...
Can anyone point me in the right direction in figuring out how to get Poppler 0.86.1 to successfully install on Centos 7?
If I remember correctly, I had the same problem when I was trying to use the latest version of the Poppler in my Docker image. I fixed it by installing libopenjp2-7-dev. Please check my answer, specifically, the second row of my Dockerfile where you can see what I installed before running cmake.
I hit this and it was due to https://github.com/uclouvain/openjpeg/issues/1174. I modified my local copy of /lib64/openjpeg-2.3/OpenJPEGConfig.cmake to work around this.

install problem: Cmake error : include could not find load file: yarpl-exports.cmake

I'm trying to install fbthrift for fb-python.
I followed the guides in
https://github.com/facebook/fbthrift and installed the dependencies needed.
but I got this error when running
cmake ..
in cmd:
-- Found folly: /usr/local
CMake Error at /home/xian/rsocket-cpp/build/yarpl/yarpl-config.cmake:31 (include):
include could not find load file:
/home/xian/lib/cmake/yarpl/yarpl-exports.cmake
Call Stack (most recent call first):
CMakeLists.txt:107 (find_package)
-- Found YARPL: /home/xian
-- Could NOT find rsocket (missing: rsocket_DIR)
-- Found fizz: /usr/local
CMake Error at CMakeLists.txt:110 (find_package):
Could not find a package configuration file provided by "fmt" with any of
the following names:
fmtConfig.cmake
fmt-config.cmake
Add the installation prefix of "fmt" to CMAKE_PREFIX_PATH or set "fmt_DIR"
to a directory containing one of the above files. If "fmt" provides a
separate development package or SDK, be sure it has been installed.
-- Configuring incomplete, errors occurred!
I tried to build the path doing:
sudo cmake .. -DCMAKE_PREFIX_PATH=/home/xian/rsocket-cpp/build/yarpl/CMakeFiles/Export/lib/cmake
but it doesn't work.
yarpl-exports.cmake is in
/home/xian/rsocket-cpp/build/yarpl/CMakeFiles/Export/lib/cmake/yarpl
and I'm pretty sure I have installed rsocket-cpp.
what should I do?
You have to install libfmt-dev package ...
$ lsb_release -a
No LSB modules are available.
Distributor ID: Ubuntu
Description: Ubuntu 22.04.1 LTS
Release: 22.04
Codename: jammy
$ sudo apt-get install libfmt-dev
$ cmake .
-- Configuring done
Try
git clone https://github.com/fmtlib/fmt.git
cd fmt
cmake CMakeLists.txt
make
sudo make install

Locations PCLConfig.cmake and pcl-config.cmake files for PCL library

I installed PCL using the following commands.
sudo add-apt-repository ppa:v-launchpad-jochen-sprickerhof-de/pcl
sudo apt-get update
sudo apt-get install libpcl-all
When I compiled my PCL program with the following lines in CMakeLists.txt
find_package(PCL 1.3 REQUIRED COMPONENTS)
include_directories(${PCL_INCLUDE_DIRS})
link_directories(${PCL_LIBRARY_DIRS})
add_definitions(${PCL_DEFINITIONS})
I have errors as
CMake Error at CMakeLists.txt:17 (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.
I can't locate PCLConfig.cmake and pcl-config.cmake in my system.
I did like
locate PCLConfig.cmake
/home/ttt/.local/share/Trash/files/PCLConfig.cmake
/home/ttt/.local/share/Trash/files/DemoApplications-master/Calculus/tv_auto_on_off/voxel-sdk/libvoxelpcl/VoxelPCLConfig.cmake.in
/home/ttt/.local/share/Trash/files/config/VoxelPCLConfig.cmake.in
/home/ttt/.local/share/Trash/files/voxelsdk.2/config/VoxelPCLConfig.cmake.in
/home/ttt/.local/share/Trash/info/PCLConfig.cmake.trashinfo
/home/ttt/Softwares/voxelsdk/config/VoxelPCLConfig.cmake.in
/usr/lib/cmake/VoxelPCL/VoxelPCLConfig.cmake
Does it make sense?
I tried like
set(PCL_DIR "/home/ttt/.local/share/Trash/files/PCLConfig.cmake")
find_package(PCL 1.3 REQUIRED COMPONENTS)
include_directories(${PCL_INCLUDE_DIRS})
link_directories(${PCL_LIBRARY_DIRS})
add_definitions(${PCL_DEFINITIONS})
But still have the same error.
How to locate PCLConfig.cmake in my system?
Thanks
you should specify the PCL dir for the CMake to find it.
In a terminal run :
$ locate PCLConfig.cmake
Then, add the found folder (without the filename) to your CMakeLists like the following :
set(PCL_DIR "/found/folder/")
#change X.x to whatever version yo installed
Sidenote : /usr/share/pcl-x.x is the usual path to your pcl folder.
I had the same problem when I followed the steps mentioned on the website http://www.pointclouds.org/downloads/linux.html, for Ubuntu 18.
You simply need to run
sudo apt install libpcl-dev
as bionic is not mentioned in the distributions (http://ppa.launchpad.net/v-launchpad-jochen-sprickerhof-de/pcl/ubuntu/dists/)