1. 安装gcc,clang

    sudo apt update
    sudo apt install gcc
    sudo apt install clang
    sudo apt install gcc-10
    ...
    
  2. gcc,clang版本切换

    sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-9 1 --slave /usr/bin/g++ g++ /usr/bin/g++-9
    sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-10 2 --slave /usr/bin/g++ g++ /usr/bin/g++-10
    update-alternatives --config gcc
    ...
    
  3. vscode 安装cmake-tools

    crtl+shift+p: cmake:quick start

    配置相应的CMakeLists.txt(可以在vscode选择编译器,或者选择由cmake推定)

    gcc的CMakeLists.txt参考如下:

    cmake_minimum_required(VERSION 3.0.0)
    project(test1 VERSION 0.1.0)
    set(CMAKE_C_STANDARD 11)
       
       
    set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++17")
       
    add_executable(test1 main.cpp)
       
    set(CPACK_PROJECT_NAME ${PROJECT_NAME})
    set(CPACK_PROJECT_VERSION ${PROJECT_VERSION})
    

    clang的CMakeLists.txt参考如下:

    cmake_minimum_required(VERSION 3.2.0)
    project(test2 VERSION 0.1.0)
       
       
    find_package(LLVM REQUIRED CONFIG)
       
    message(STATUS "Found LLVM ${LLVM_PACKAGE_VERSION}")
    message(STATUS "Using LLVMConfig.cmake in: ${LLVM_DIR}")
       
    set(CMAKE_C_STANDARD 11)
    set(CMAKE_CXX_STARDARD 17)
    set(CMAKE_CXX_STANDARD_REQUIRED ON)
    set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++17")
       
    include_directories(${LLVM_INCLUDE_DIRS})
    add_definitions(${LLVM_DEFINITIONS})
       
    add_executable(test2 main.cpp)
       
    # that we wish to use
    llvm_map_components_to_libnames(llvm_libs support core irreader)
        
    # Link against LLVM libraries
    target_link_libraries(test2 ${llvm_libs})
    
  4. 使用cmake插件的build功能生成相应的可执行文件,使用vscode的调试功能生成launch.json与tasks.json,删除tasks.json,删除launch.json这一行

    "preLaunchTask": "C/C++: g++-10 build active file",
    

    并配置launch.json

    "program": "${workspaceFolder}/build/leedcode-cpp",
    

    接下来就可正常使用vscode的运行与调试功能了。

  5. settings.json与c_cpp_properties.json

    settings.json如下:

    {
        "vsicons.presets.angular": true,
        "editor.fontSize": 16,
        "debug.console.fontSize": 14,
        "terminal.integrated.fontSize": 14,
        "window.zoomLevel":1.2,
    }
    

    c_cpp_properties.json如下:

    {
        "configurations": [
            {
                "name": "Linux",
                "includePath": [
                    "${workspaceFolder}/**"
                ],
                "defines": [],
                "compilerPath": "/usr/bin/clang",
                "cStandard": "c11",
                "cppStandard": "c++20",
                "intelliSenseMode": "clang-x64",
                "configurationProvider": "ms-vscode.cmake-tools"
            }
        ],
        "version": 4
    }
    

待解决问题,调试时如何直观的查看,标准库容器变量的值如stack、vector、list…?