关于ubuntu下vscode+C/C++多项目文件的编译与调试
程序员文章站
2024-02-29 12:01:04
...
最近要使用ubuntu系统做开发,习惯了windows下的vs,在ubuntu下暂时没有找到好的IDE可以使用,后面发现微软有推出vscode的轻量化编辑器,故研究了一段时间。在网上学习后发现针对多文件的调试很不方便,大部分都是使用task.json和launch.json,这块我很不熟悉,有点一筹莫展,经同事指点发现了简单的调试过程。
1.先看下示例文件:
b.h
#ifndef B_FILE_HEADER_INC
#define B_FIEL_HEADER_INC
#include<math.h>
double cal_sqrt(double value);
#endif
b.c
#include "b.h"
double cal_sqrt(double value)
{
return sqrt(value);
}
main.c
#include "b.h"
#include <stdio.h>
int main(int argc, char** argv)
{
double a = 49.0;
double b = 0.0;
printf("input a:%f\n",a);
b = cal_sqrt(a);
printf("sqrt result:%f\n",b);
return 0;
}
注:cmake版本可能对编译调试有所影响,尽可能高,我的是3.14.6.
查看方式:打开终端-cmake --version
CMakeLists.txt
#1.cmake verson,指定cmake版本
cmake_minimum_required(VERSION 3.2)
#2.project name,指定项目的名称,一般和项目的文件夹名称对应
PROJECT(test_sqrt)
#set(CMAKE_CXX_STANDARD 11)#c++11
#set(LIBRARY_OUTPUT_PATH ${PROJECT_SOURCE_DIR}/lib)
#3.head file path,头文件目录
INCLUDE_DIRECTORIES(
include
)
#add_library(${PROJECT_NAME} src/b.c)#添加为库文件
#4.source directory,源文件目录
AUX_SOURCE_DIRECTORY(src DIR_SRCS)
#5.set environment variable,设置环境变量,编译用到的源文件全部都要放到这里,否则编译能够通过,但是执行的时候会出现各种问题,比如"symbol lookup error xxxxx , undefined symbol"
SET(TEST_MATH ${DIR_SRCS})
#6.add executable file,添加要编译的可执行文件
ADD_EXECUTABLE(${PROJECT_NAME} ${TEST_MATH})
#7.add link library,添加可执行文件所需要的库,比如我们用到了libm.so(命名规则:lib+name+.so),就添加该库的名称
TARGET_LINK_LIBRARIES(${PROJECT_NAME} m)
2.编译文件
只是编译的话方法比较简单:1打开终端;2 打开编译文件夹;3 cd build; 4 cmake …;5 make; 6 ./test_sqrt
3.多文件调试
找到vscode最下面一行:点击下面工具
选择unspecified
点击cmake小工具,没有的话可能需要在扩展里添加cmake 和cmaketools,这两个工具平时用得上,最好添加以下吧
选择debug
点击build(感觉这步可以省略。。。)
点击小甲壳虫,进行调试(前提是在文件中设置好断点)