问题:
如果src原本没有CMakeLists.txt ,使用catkin_make 或者catkin_init_workspace后,会自动链接到toplevel.cmake,但是如果你不小心移动了toplevel.cmake 或者修改了其中的内容,就会导致很多编译问题。

解决方法:
在该文件目录下添加toplevel.cmake ,如果是内容更改则替换为以下内容,以下版本文melodic,找到相应的版本添加。
# toplevel CMakeLists.txt for a catkin workspace
# catkin/cmake/toplevel.cmake
cmake_minimum_required(VERSION 3.0.2)
project(Project)
set(CATKIN_TOPLEVEL TRUE)
# search for catkin within the workspace
set(_cmd "catkin_find_pkg" "catkin" "${CMAKE_SOURCE_DIR}")
execute_process(COMMAND ${_cmd}
RESULT_VARIABLE _res
OUTPUT_VARIABLE _out
ERROR_VARIABLE _err
OUTPUT_STRIP_TRAILING_WHITESPACE
ERROR_STRIP_TRAILING_WHITESPACE
)
if(NOT _res EQUAL 0 AND NOT _res EQUAL 2)
# searching fot catkin resulted in an error
string(REPLACE

当src目录下无CMakeLists.txt时,catkin_make会依赖toplevel.cmake。如果移动或修改此文件,会导致编译问题。解决方案是在当前目录创建toplevel.cmake文件,并根据ROS Melodic的版本插入正确内容。
最低0.47元/天 解锁文章
9189

被折叠的 条评论
为什么被折叠?



