如何修复Mujoco CmakeLists构建错误“/ usr / bin / ld:找不到-lglfw”?

问题描述 投票:0回答:1

我正在尝试使用C ++中的Mujoco模拟机器人的物理特性。因为项目是更大工作空间的一部分,所以我需要使用cmake来构建可执行文件。但是,我似乎无法正确链接所有依赖库,所以我无法摆脱错误:

~: /usr/bin/ld: cannot find -lglfw

我在网上做了一些关于如何在CmakeLists中正确设置Mujoco的研究,并找到了一些例子hereherehere

我从上面的示例中复制了CmakeLists文件,但错误仍然存​​在。以下是我文件中的相关摘录。我定义了一个环境变量MUJOCO_PATH来指向我机器上的Mujoco文件夹。具体地说$HOME/.mujoco/mujoco200

的CMakeLists.txt

######################################################
# define the include directory of all ${CATKIN_PKGS} #
######################################################
include_directories(
    ${PROJECT_SOURCE_DIR}/include
    ${catkin_INCLUDE_DIRS}
    ${Eigen_INCLUDE_DIRS}
    $ENV{MUJOCO_PATH}/include
)

########################################################
# manage the creation of the libraries and executables #
########################################################
set(USE_GL 1)

link_directories($ENV{MUJOCO_PATH}/bin)

#Finding main mujoco library
if(${USE_GL})
    file(GLOB LIB_MUJOCO $ENV{MUJOCO_PATH}/bin/libmujoco[0-9][0-9][0-9].so)
else()
    file(GLOB LIB_MUJOCO $ENV{MUJOCO_PATH}/bin/libmujoco[0-9][0-9][0-9]nogl.so)
endif()
#Showing mujoco library found
message(STATUS "MuJoCo lib: " ${LIB_MUJOCO})

add_subdirectory(src)

SRC /的CMakeLists.txt

set(BIN_NAME mujoco_finger_test)

add_executable(${BIN_NAME} ${BIN_NAME}.cpp)
target_link_libraries(${BIN_NAME} ${LIB_MUJOCO})

# Standard libraries for GL
target_link_libraries(${BIN_NAME} GL GLU glut )

# Additional libraries from mujoco package
target_link_libraries(${BIN_NAME} libglew.so libglfw.so.3 libglewegl.so libglewosmesa.so)

有没有人知道为什么会这样?我错过了这些例子中的一些东西吗?

谢谢!

c++ cmake shared-libraries simulator robotics
1个回答
2
投票

您应该找到GL / GLW包而不是:target_link_libraries(${BIN_NAME} libglew.so libglfw.so.3 libglewegl.so libglewosmesa.so)。这并不能确保这些库可用并且可以找到,而qazxsw poi。

有关该主题的更多信息,请参见FIND_PACKAGE(GLEW)

© www.soinside.com 2019 - 2024. All rights reserved.