背景是我前几天在ROS工作空间3308_ws文件夹下面编译ROS的包:
lzm@lzm:~/3308_ws$ catkin_make
可以通过编译,在Clion IDE里面加载的CMakeLists.txt文件可以通过编译。几天之后就出现链接不上ROS原有的源库: /opt/ros/indigo/...的文件。乱搞一通,编译不通过原以为是python版本问题,然而并不是,最后百度解决了。
链接:https://blog.csdn.net/Alex_wise/article/details/105201687#commentBox
问题:Clion IDE里面加载的CMakeLists.txt文件出现错误:
find_package(catkin) failed. catkin was neither found in the workspace nor in the CMAKE_PREFIX_PATH. One reason may be that no ROS setup.sh was sourced before.
解决方法:
-
打开终端
-
如果没有运行catkin_make生成文件的话,记得现在src文件夹所在的位置运行catkin_make
-
打开工作空间的devel文件夹
-
运行命令 (非常重要)
source setup.bash
-
打开clion.sh所在的文件夹(搜索一下就行),在终端运行
./clion.sh
之后右键cmakelist.txt文件,重新加载即可
-
在终端启动CLion,CLion应该通过setup.bash文件设置的本地环境变量启动,因此报错中的:no ROS setup.sh was sourced before问题就解决了!(红色部分还没理解怎么操作)
执行完source指令之后:我直接在工作空间上运行clion.sh的指令
lzm@lzm:~/3308_ws$ ../Downloads/clion-2020.2/bin/clion.sh
还有的是catkin_make指令生成的包编译文件build和clion编译生成的cmake-build-debug是不一样的,不需要设置这两个文件一样。在setting->Build->CMake->CMake options/Build directory这两个可以设置
二.Clion打开外部项目无法编译问题
或者在:CMakeLists.txt右击鼠标,选择Reload CMake Project重新加载CMakeLists.txt文件
参考:https://blog.csdn.net/qq_41248872/article/details/104170990