在构建 catkin 包(ROS)时出现了“no rule to make target”错误

我尝试在名为 gazebo_test 的 ros 包中使用 lua,但无法将 lua 库链接到该包中。在使用 catkin_make 构建包时出现“no rule to make target”错误。我已经搜索过了,但没有找到有效的解决方案。如大多数答案中所给出的,我已经检查了路径中的文件,但仍无法构建。

以下是我的“CMakeLists.txt”文件:

cmake_minimum_required(VERSION 2.8.3)
project(gazebo_test)
add_compile_options(-std=c++11)

set(LUA_INCLUDE_DIR /usr/include/lua5.2)
set(LUA_LIBRARY /usr/lib/x86_64-linux-gnu/liblua5.2.so)

find_package(catkin REQUIRED COMPONENTS roscpp rospy std_msgs gazebo_ros gazebo_msgs tf sensor_msgs image_transport cv_bridge)

find_package(gazebo REQUIRED)

catkin_package(DEPENDS roscpp gazebo_ros)

include_directories(${catkin_INCLUDE_DIRS} ${Boost_INCLUDE_DIR} ${GAZEBO_INCLUDE_DIRS} ${LUA_INCLUDE_DIR})

link_directories(${GAZEBO_LIBRARY_DIRS})
add_executable(deepQ_test_script src/deepQ_test_script.cpp)

target_link_libraries (deepQ_test_script ${LUA_LIBRARY})

以下是错误信息:

make[2]: *** No rule to make target '/usr/lib/x86_64-linux-gnu/liblua5.2.so', needed by '/home/sudhir/ros_ws/devel/lib/gazebo_test/deepQ_test_script'.

我已经尝试了以下事项:

  • 确定路径下的 liblua5.2.so 文件存在且正确。
  • 我试图将头文件和 .so 文件复制到包的 include 和 libs 目录中,然后使用 ${PROJECT_SOURCE_DIR} 更新“CMakeLists.txt”中的路径,但仍然出现相同的错误。
  • 将 .so 文件的路径添加到 PKG_CONFIG_PATH 变量中,并且 pkg-config 命令的输出如下所示
  • pkg-config --libs lua5.2 -----> -llua5.2
  • pkg-config --cflags lua5.2 ----> -I/usr/include/lua5.2

仍然出现相同的错误。

请帮忙解决问题。谢谢。

点赞