Я пытаюсь написать плагин для Gazebo, но продолжаю сталкиваться с ошибкой при компиляции моих программ.
Requested 'libavdevice >= 56.4.100' but version of libavdevice is 53.2.0
CMake Error at /usr/share/cmake-
3.10/Modules/FindPackageHandleStandardArgs.cmake:137 (message):
Could NOT find AVDEVICE (missing: AVDEVICE_FOUND) (Required is at least
version "56.4.100")
но когда я делаю ffmpeg -version, я получаю:
libavdevice 57. 10.100 / 57. 10.100
Все же CMake, кажется, думает, что я нахожусь на версии 53. Попытка обновить ffmpeg или libavdevice-dev возвращает этоУ меня последняя версия.
Вот мой файл make:
cmake_minimum_required(VERSION 2.8 FATAL_ERROR)
find_package(gazebo REQUIRED)
include_directories(${GAZEBO_INCLUDE_DIRS})
link_directories(${GAZEBO_LIBRARY_DIRS})
list(APPEND CMAKE_CXX_FLAGS "${GAZEBO_CXX_FLAGS}")
add_library(model_control SHARED model_control.cc)
target_link_libraries(model_control ${GAZEBO_LIBRARIES})
list(APPEND CMAKE_CXX_FLAGS "${GAZEBO_CXX_FLAGS}")
и файл cc:
#include <functional>
#include <gazebo/gazebo.hh>
#include <gazebo/physics/physics.hh>
#include <gazebo/common/common.hh>
#include <ignition/math/Vector3.hh>
namespace gazebo
{
class ModelPush : public ModelPlugin
{
public: void Load(physics::ModelPtr _parent, sdf::ElementPtr /*_sdf*/)
{
// Store the pointer to the model
this->model = _parent;
// Listen to the update event. This event is broadcast every
// simulation iteration.
this->updateConnection = event::Events::ConnectWorldUpdateBegin(
std::bind(&ModelPush::OnUpdate, this));
}
// Called by the world update start event
public: void OnUpdate()
{
// Apply a small linear velocity to the model.
this->model->SetLinearVel(ignition::math::Vector3d(.3, 0, 0));
}
// Pointer to the model
private: physics::ModelPtr model;
// Pointer to the update event connection
private: event::ConnectionPtr updateConnection;
};
// Register this plugin with the simulator
GZ_REGISTER_MODEL_PLUGIN(ModelPush)
}
Спасибо!