编译、执行错误合辑

set( CMAKE_CXX_FLAGS  "${CMAKE_CXX_FLAGS} -Wall -O3" )

set( CMAKE_C_FLAGS  "${CMAKE_C_FLAGS} -Wall -O3" )

-Wall 是打开警告开关,-O代表默认优化,可选:-O0不优化,-O1低级优化,-O2中级优化,-O3高级优化,-Os代码空间优化。

list(LENGTH <list><output variable>)
list(GET <list> <elementindex> [<element index> ...]
       <output variable>)
  list(APPEND <list><element> [<element> ...])
  list(FIND <list> <value><output variable>)
  list(INSERT <list><element_index> <element> [<element> ...])
  list(REMOVE_ITEM <list> <value>[<value> ...])
  list(REMOVE_AT <list><index> [<index> ...])
  list(REMOVE_DUPLICATES <list>)
  list(REVERSE <list>)
  list(SORT <list>)

LENGTH返回列表的长度

GET返回列表中指定下标的元素

APPEND添加新元素到列表中

INSERT 将新元素插入到列表中指定的位置

REMOVE_ITEM从列表中删除某个元素

REMOVE_AT从列表中删除指定下标的元素

REMOVE_DUPLICATES从列表中删除重复的元素

REVERSE 将列表的内容实地反转,改变的是列表本身,而不是其副本

SORT 将列表按字母顺序实地排序,改变的是列表本身,而不是其副本

列表的子命令APPEND, INSERT, REMOVE_AT, REMOVE_ITEM,REMOVE_DUPLICATES, REVERSE以及SORT在当前的CMake变量域创建一些新值。与SET命令类似,即使列表本身是在父域中定义的,LIST命令也只会在当前域创建新的变量值,为了将这些操作的结果向上传递,需要通过SET PARENT_SCOPE, SET CACHE INTERNAL或其他值域扩展的方法。

roslaunch时有错误字符

<launch>
        <node pkg="turtlesim" type="turtlesim_node" name = "turtlesim_node"/>
    <node pkg="lesson_two" type="turtle_control" name = "turtle_control" output="screen"/>
</launch>

比如在launch文件中在中文输入法下输入空格,编译执行时会报错,而错误的地方比较难发现。可用以下方法。

上半部分,文件中有错误字符,可以看出错误处有(...),而下半部分是文件修改后的执行结果没有出现(...)

ROS:在同一工作空间下不能有同名的多个节点(在不同功能包下)。

## Generate actions in the 'action' folder
add_action_files(
   DIRECTORY
   action
   FILES
   DoDishes.action
   #Action2.action
)

未加动作文件。https://blog.csdn.net/lh2008xp/article/details/81092850

未添加子模块add_subdirectory(....)

原文地址:https://www.cnblogs.com/112358nizhipeng/p/9191141.html