导读
我们知道clion只能调试CMake的工程,虽然clion也能通过attach进程的方式调试程序,但是这样启动调试很不方便,需要先在shell里面启动进程,然后attach调试,而且如果要调试main函数起始代码,也很困难。所以笔者查看资料找到了clion调试Makefile工程的方法。
上一遍文章《janus mac下编译记录》中我们已经编译出janus可执行程序,这篇文章以janus为例接着讲解怎么用clion调试janus。
1、安装compiledb
在开始之前,我们需要安装一个可以从Makefile生成Compilation DB JSON文件的工具。我们将在本教程中使用的工具是compiledb。它是用Python编写的,所以最简单的方法是使用pip。
$ pip install compiledb
2、生成compile_commands.json
#先cd进入makefile所在目录
$ compiledb -nf make
3、创建CMakeList.txt
#先cd进入makefile所在目录
#然后vi CMakeList.txt并输入以下内容
cmake_minimum_required(VERSION 3.10)
project(janus)
set(CMAKE_CXX_STANDARD 11)
set(BUILD_DIR .) #设置编译目录,也就是Makefile文件所在目录
message(${BUILD_DIR}) #打印目录路径
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11")
add_custom_target(janus COMMAND make -C ${BUILD_DIR})#最关键的就是这句, 设置外部编译文件而不是使用CMakeLists.txt
4、通过compile_commands.json打开工程
打开工程Open as Project
5、添加Debug配置
Add Configuration选择可执行程序
选择可执行程序2 最终设置界面
6、完成
通过上述各步骤之后,clion已经能识别出makefile工程并且可以直接调试,代码也能高亮并且支持跳转等CMake工程支持的一切特性。
唯一的缺点就是修改代码后,需要重新生成compile_commands.json文件才能更好调试定位代码。
7、关闭工程源码索引失效问题
在关闭clion后,下次再打开工程后,代码索引会失效,代码无法高亮。
通过下面方式可以重新加载索引:
image.png
网友评论