注:尽量使用ament_cmake_auto来编写cmakelists.txt文件,依赖的程序包在packages.xml文件中用<depend>nav_msgs</depend>
的形式声明,一些找不到的动态链接库可以用target_link_libraries
的方式书写
cmake_minimum_required(VERSION 3.5)
project(nolinear_mpc_control)
if(NOT CMAKE_CXX_STANDARD)
set(CMAKE_CXX_STANDARD 14)
endif()
if(CMAKE_COMPILER_IS_GNUCXX OR CMAKE_CXX_COMPILER_ID MATCHES "Clang")
add_compile_options(-Wall -Wextra -Wpedantic)
endif()
add_definitions(-fPIC)
#find_package(catkin REQUIRED COMPONENTS roscpp std_msgs)
find_package(ament_cmake_auto REQUIRED)
find_package(rclcpp REQUIRED)
find_package(std_msgs REQUIRED)
find_package(ackermann_msgs REQUIRED)
find_package(tf2_ros REQUIRED)
find_package(nav_msgs REQUIRED)
find_package(chassis_control REQUIRED)
#find_package(rosidl_default_generators REQUIRED)
ament_auto_find_build_dependencies()
ament_auto_add_executable(nolinearMPCNode
src/MPCNode.cpp
src/NolinearMPC.cpp
)
target_link_libraries(nolinearMPCNode
ipopt
)
ament_auto_package ()
<?xml version="1.0"?>
<?xml-model href="http://download.ros.org/schema/package_format3.xsd" schematypens="http://www.w3.org/2001/XMLSchema"?>
<package format="3">
<name>nolinear_mpc_control</name>
<version>0.0.0</version>
<description>TODO: Package description</description>
<maintainer email="zhangying@blg.com">zhangying</maintainer>
<license>TODO: License declaration</license>
<buildtool_depend>ament_cmake</buildtool_depend>
<depend>std_msgs</depend>
<depend>chassis_control</depend>
<depend>nav_msgs</depend>
<depend>tf2_ros</depend>
<depend>ackermann_msgs</depend>
<depend>eigen3</depend>
<depend>ipopt</depend>
<test_depend>ament_lint_auto</test_depend>
<test_depend>ament_lint_common</test_depend>
<export>
<build_type>ament_cmake</build_type>
</export>
</package>
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)