最近试图想用vscode+gcc在ubuntu上配置环境,但是发现build项目的时候还是要通过camke+vscode解决,简单的使用code.runner回产生依赖不清楚的问题;
基本工具需求:
在vscode的extension中装好基本得部件,CMake,CMakeTools等工具;
并且创建launch.json和tasks.json两个文件,这里不再赘述,自动生成即可;
这里注意下launch.json和tasks.json的作用;
launch.json主要指示了gdb调试下应该去哪里找执行文件,并且调试或者执行的时候的具体执行参数,执行方式是什么;
而tasks.json则主要说明了launch.json中某个task应该执行,执行参数是什么;
后续则需要CMakeLists.txt;
CMakeLists.txt内容形式:
CMakeLists.txt则是为了辅助CMake编译存在的;
简单demo的大致形式如下:
cmake_minimum_required (VERSION 2.8) #最低要求的CMake版本
project(CStart) # 项目名称
file(GLOB SRC_FILE *.cpp) # 建立变量SRC_FILE为目录下.c文件列表
add_executable (${PROJECT_NAME} ${SRC_FILE}) # 要求编译可执行文件
add_definitions("-Wall -g")
在CMakeList.txt存在后,按这两个键,会直接编译;
在工作目录下,会直接生成build文件,文件内部有相应的目标文件结果;
当然也可以在工作目录下执行cmake->make,进行手动编译;
如何调试:
调试则需要在上述的基础上,进行launch.json的配置;
首先线自动生成,但是一定要修改和注意以下参数:
- program:代表需要调试的目标二进制文件,这里一定要注意路径问题,一定是当前目录下生成的build目录内的最终文件;
- stopAtEntry:设置成false;
- preLaunchTask:由于每次打断点修改后,都要重新走一遍编译,可以设置一个build task,在每次调试前提前编译一下;
如果设置了上述第三个参数,则需要设置tasks.json:
这里label代表launch内的自定义的task名字;
cwd指向build路径;
command表示要执行的类型;