I have installed a library onto my system and I would now like to import this library to build with cmake in my CMakeLists.txt file but I'm not able to import it. I get errors that the library can't be found when I run cmake ..
The library was installed to /usr/local
and it is in a few sub folders here. I have them all listed below.
This is the part of my CMakeLists.txt which fails.
find_package(MUJOCO REQUIRED)
link_libraries(MUJOCO::mujoco)
This is the error I get with this attempt to import the library in my CMakeLists.txt
CMake Error at CMakeLists.txt:65 (find_package):
By not providing "FindMUJOCO.cmake" in CMAKE_MODULE_PATH this project has
asked CMake to find a package configuration file provided by "MUJOCO", but
CMake did not find one.
Could not find a package configuration file provided by "MUJOCO" with any
of the following names:
MUJOCOConfig.cmake
mujoco-config.cmake
Add the installation prefix of "MUJOCO" to CMAKE_PREFIX_PATH or set
"MUJOCO_DIR" to a directory containing one of the above files. If "MUJOCO"
provides a separate development package or SDK, be sure it has been
installed.
This is where the mujoco library was installed on my system, the library I want to include was installed.
I'm not sure it is write to hand code every one of these paths.
-- Install configuration: "Release"
-- Installing: /usr/local/bin/basic
-- Installing: /usr/local/bin/compile
-- Installing: /usr/local/bin/derivative
-- Installing: /usr/local/bin/record
-- Installing: /usr/local/bin/testspeed
-- Installing: /usr/local/bin/testxml
-- Installing: /usr/local/bin/simulate
-- Installing: /usr/local/lib/libmujoco.so.2.2.1
-- Installing: /usr/local/lib/libmujoco.so
-- Installing: /usr/local/include/mujoco/mjdata.h
-- Installing: /usr/local/include/mujoco/mjexport.h
-- Installing: /usr/local/include/mujoco/mjmodel.h
-- Installing: /usr/local/include/mujoco/mjrender.h
-- Installing: /usr/local/include/mujoco/mjtnum.h
-- Installing: /usr/local/include/mujoco/mjui.h
-- Installing: /usr/local/include/mujoco/mjvisualize.h
-- Installing: /usr/local/include/mujoco/mjxmacro.h
-- Installing: /usr/local/include/mujoco/mujoco.h
-- Installing: /usr/local/lib/cmake/mujoco/mujocoTargets.cmake
-- Installing: /usr/local/lib/cmake/mujoco/mujocoTargets-release.cmake
-- Installing: /usr/local/lib/cmake/mujoco/mujocoConfig.cmake
-- Installing: /usr/local/lib/cmake/mujoco/mujocoConfigVersion.cmake
-- Installing: /usr/local/share/mujoco/model
-- Installing: /usr/local/share/mujoco/model/hammock
-- Installing: /usr/local/share/mujoco/model/hammock/humanoid_body.xml
-- Installing: /usr/local/share/mujoco/model/hammock/hammock.xml
-- Installing: /usr/local/share/mujoco/model/tendon_arm
-- Installing: /usr/local/share/mujoco/model/tendon_arm/arm26.xml
-- Installing: /usr/local/share/mujoco/model/composite
-- Installing: /usr/local/share/mujoco/model/composite/scene.xml
-- Installing: /usr/local/share/mujoco/model/composite/cloth.xml
-- Installing: /usr/local/share/mujoco/model/composite/softbox.xml
-- Installing: /usr/local/share/mujoco/model/composite/asset
-- Installing: /usr/local/share/mujoco/model/composite/asset/sponge.png
-- Installing: /usr/local/share/mujoco/model/composite/asset/marble.png
-- Installing: /usr/local/share/mujoco/model/composite/asset/carpet.png
-- Installing: /usr/local/share/mujoco/model/composite/loop.xml
-- Installing: /usr/local/share/mujoco/model/composite/particle.xml
-- Installing: /usr/local/share/mujoco/model/composite/rope.xml
-- Installing: /usr/local/share/mujoco/model/composite/grid2pin.xml
-- Installing: /usr/local/share/mujoco/model/humanoid
-- Installing: /usr/local/share/mujoco/model/humanoid/22_humanoids.xml
-- Installing: /usr/local/share/mujoco/model/humanoid/humanoid.xml
-- Installing: /usr/local/share/mujoco/model/flag
-- Installing: /usr/local/share/mujoco/model/flag/flag.xml
-- Installing: /usr/local/share/mujoco/model/mug
-- Installing: /usr/local/share/mujoco/model/mug/mug.obj
-- Installing: /usr/local/share/mujoco/model/mug/mug.png
-- Installing: /usr/local/share/mujoco/model/mug/mug.xml
-- Installing: /usr/local/share/mujoco/model/slider_crank
-- Installing: /usr/local/share/mujoco/model/slider_crank/slider_crank.xml
-- Installing: /usr/local/share/mujoco/model/humanoid100
-- Installing: /usr/local/share/mujoco/model/humanoid100/humanoid100.xml
-- Installing: /usr/local/share/mujoco/model/humanoid100/humanoid_body.xml
CodePudding user response:
The only cmake configuration files installed by the lib are
-- Installing: /usr/local/lib/cmake/mujoco/mujocoTargets.cmake
-- Installing: /usr/local/lib/cmake/mujoco/mujocoTargets-release.cmake
-- Installing: /usr/local/lib/cmake/mujoco/mujocoConfig.cmake
-- Installing: /usr/local/lib/cmake/mujoco/mujocoConfigVersion.cmake
find_package(<Package> ...)
in config mode checks for the files
<package>-config.cmake
<Package>Config.cmake
where <package>
is the <Package>
with the first character converted to lower case.
, see the find_package()
documentation
You've used find_package(MUJOCO REQUIRED)
in your cmake project, which means, cmake is looking for a file named mujoco-config.cmake
or MUJOCOConfig.cmake
, but not for mujocoConfig.cmake
.
You need to use
find_package(mujoco REQUIRED)
instead.