欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

关于ubuntu下vscode+C/C++多项目文件的编译与调试

程序员文章站 2024-02-29 12:01:04
...

最近要使用ubuntu系统做开发,习惯了windows下的vs,在ubuntu下暂时没有找到好的IDE可以使用,后面发现微软有推出vscode的轻量化编辑器,故研究了一段时间。在网上学习后发现针对多文件的调试很不方便,大部分都是使用task.json和launch.json,这块我很不熟悉,有点一筹莫展,经同事指点发现了简单的调试过程。

1.先看下示例文件:

关于ubuntu下vscode+C/C++多项目文件的编译与调试
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最下面一行:
关于ubuntu下vscode+C/C++多项目文件的编译与调试点击下面工具
关于ubuntu下vscode+C/C++多项目文件的编译与调试
选择unspecified
关于ubuntu下vscode+C/C++多项目文件的编译与调试
点击cmake小工具,没有的话可能需要在扩展里添加cmake 和cmaketools,这两个工具平时用得上,最好添加以下吧
关于ubuntu下vscode+C/C++多项目文件的编译与调试
选择debug
关于ubuntu下vscode+C/C++多项目文件的编译与调试
点击build(感觉这步可以省略。。。)

关于ubuntu下vscode+C/C++多项目文件的编译与调试
点击小甲壳虫,进行调试(前提是在文件中设置好断点)
关于ubuntu下vscode+C/C++多项目文件的编译与调试