Linux系统(Ubuntu)使用vscode进行c++开发

建立开发所需要的项目文件夹

        创建如下目录结构:

├── bin
├── build
├── docs
│   ├── excel
│   └── json
├── lib
├── src
└── third_party

bin文件夹:用于存放可执行文件
build文件夹:用于存放cmake编译后的文件

docs文件夹:用于存放输入文件,如excel和json数据或者项目说明等文本

lib文件夹:存放cmkae生成的动态库和静态库

src文件夹:存放工程所需要的代码

third_party文件夹:存放三方库

vscode编译和调试

        在vscode中打开建立的文件夹,在src中添加main.cpp文件

         在main函数中写入代码:

#include <iostream>

using namespace std;

int main()
{
    cout<<"Hello World"<<endl;

    return 0;
}

生成tasks.json文件

        tasks.json文件用来进行编译

tasks.json配置步骤:

        1、点击菜单栏的终端,选择配置默认生成文件

        2、c++就选择g++的编译器/usr/bing/g++  纯c语言就选择/usr/bing/gcc

        3、这样就自动生成了一个tasks.json文件(左边资源管理器的.vscode中)

        tasks.json文件中只需要修改”args“部分。

{
    "version": "2.0.0",
    "tasks": [
        {
            "type": "cppbuild",
            "label": "C/C++: g++ 生成活动文件",
            "command": "/usr/bin/g++",
            "args": [
                "-fdiagnostics-color=always",
                "-g",
                "${file}",
                "-o",
                "${fileDirname}/${fileBasenameNoExtension}"
            ],
            "options": {
                "cwd": "${fileDirname}"
            },
            "problemMatcher": [
                "$gcc"
            ],
            "group": {
                "kind": "build",
                "isDefault": true
            },
            "detail": "编译器: /usr/bin/g++"
        }
    ]
}

”-g“部分存放所有的cpp文件

         如"${workspaceFolder}/src/*.cpp", 表示在根目录的src文件夹中的所有cpp文件

”-o“部分指定输出文件的路径

        "${fileDirname}/${fileBasenameNoExtension}"表示当前文件的路径

        如"${workspaceFolder}/bin/${fileBasenameNoExtension}", 表示指定输出文件为在根目录的bin文件夹中

.h文件的添加将在后面提到

        "-I+文件路径",

        完成之后就可以点击右上的三角形进行运行了

生成launch.json文件

        launch.json文件用来进行调试

launch.json配置步骤

        1、点击菜单栏的运行,然后点击添加配置就会自动生成一个lauch.json文件

        2、然后再次点击添加配置,在json文件中选择(gdb) 启动 就会自动生成文件内容

        3、将"program": "输入程序名称,例如 ${workspaceFolder}/a.out",修改成"program": "${fileDirname}/${fileBasenameNoExtension}",也可以按他例如的那样进行修改${fileDirname}/${fileBasenameNoExtension}表示用当前函数的函数名来命名

  完成之后就可以点击右上的三角形进行调试了

建立函数文件夹

        在src文件夹中新建一个test的文件夹 在test文件夹中添加test.h和test.cpp文件

test.h
#include <iostream>

using namespace std;


void printvocode();


test.cpp
#include "test.h"

void printvocode()
{
    cout << "Hello vscode" << endl;
}

 这时就需要将test的h文件和cpp文件添加到tasks.json中

"args": [
                "-fdiagnostics-color=always",
                "-g",
                "${workspaceFolder}/src/*.cpp",
                "${workspaceFolder}/src/test/*.cpp",

                "-o",
                "${workspaceFolder}/bin/${fileBasenameNoExtension}",

                "-I${workspaceFolder}/src/test",

            ],

配置c_cpp_properties.json文件

        完成以上步骤之后如果想直接使用#include“test.h”还需要配置c_cpp_properties.json文件

        1、按F1,输入C/C++: Edit Configurations (UI)找到包含路径添加

        2、在左边的.vscode中就会出现一个c_cpp_properties.json文件 ,点击c_cpp_properties.json文件文件,在"includePath"中添加test文件夹的路径

"includePath": [
                "${workspaceFolder}/**",
                "${workspaceFolder}/src/test"
            ],

        完成以上部分就可以在main函数中引用运行即可

构建cmake项目

        根据当前的文件夹,这是相当于三层的cmake ,在根目录建立一个CMakeLists.txt,在src文件夹和main函数同路径建立一个CMakeLists.txt,在src文件夹的test文件夹中建立一个CMakeLists.txt(每一个src文件夹中的文件夹都要有一个CMakeLists.txt)                

        注意CMakeLists大小写不能出错

根目录的CMakeLists.txt

# CMake 最低版本号要求
cmake_minimum_required(VERSION 3.10)

# 项目信息
project(mylib
    VERSION 1.0
    DESCRIPTION "A simple example"
    LANGUAGES CXX
)

# 设置 C++ 标准
set(CMAKE_CXX_STANDARD 17)

# 定义通用的输出目录变量,便于统一管理和维护
set(OUTPUT_DIR ${PROJECT_SOURCE_DIR}/bin)
set(LIBRARY_OUTPUT_DIR ${PROJECT_SOURCE_DIR}/lib)

# 根据不同平台设置可执行文件输出路径(Windows 下特殊处理)
if(WIN32)#windows系统
    set(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${PROJECT_SOURCE_DIR}/bin)               # 可执行文件的输出路径
else()
    set(EXECUTABLE_OUTPUT_PATH ${PROJECT_SOURCE_DIR}/bin)           
    set(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${PROJECT_SOURCE_DIR}/bin)               # 可执行文件的输出路径
endif()

# 设置动态库和静态库的输出路径
set(CMAKE_LIBRARY_OUTPUT_DIRECTORY ${PROJECT_SOURCE_DIR}/lib)                   # 动态库的输出路径
set(CMAKE_ARCHIVE_OUTPUT_DIRECTORY ${PROJECT_SOURCE_DIR}/lib)                   # 静态库的输出路径

#变量设置
set(test_Dir ${CMAKE_CURRENT_SOURCE_DIR}/src/test)                              # test头文件路径

#添加子目录
add_subdirectory(src)main

 main函数同路径的CMakeLists.txt

# 子目录信息
project(main)

add_executable(${PROJECT_NAME} main.cpp)   # 生成可执行文件 工程名称


# 添加头文件
target_include_directories(${PROJECT_NAME}
    PUBLIC  #public方式
    ${test_Dir}
)

# 链接动态库
target_link_libraries(${PROJECT_NAME}
    PUBLIC
    test
)

#添加子目录
add_subdirectory(test)
 

第三层的CMakeLists.txt

project(test)

add_library(
    ${PROJECT_NAME}
    SHARED
    test.cpp
)

 cmake文件生成

        完成CMakeLists.txt之后,在终端输入以下命令没有报错即成功。

cd build

 cmake ..

 make

最后生成的可执行文件在bin文件夹下,输入以下命令即可执行。

 ./../bin/main

要在Linux/Ubuntu使用VSCode进行C++编程,需要进行以下步骤: 1. 安装C++编译器,如g++或clang++。可以通过终端命令行输入以下命令进行安装: ``` sudo apt-get update sudo apt-get install build-essential ``` 2. 安装VSCode。可以从官网下载.deb文件,然后通过终端命令行输入以下命令进行安装: ``` sudo dpkg -i <file>.deb sudo apt-get install -f ``` 3. 安装C++插件。在VSCode中打开Extensions面板,搜索C++插件并安装。 4. 配置tasks.json文件。在VSCode中打开终端,输入以下命令生成tasks.json文件: ``` Ctrl + Shift + P 输入"Tasks: Configure Task" 选择"Create tasks.json file from template" 选择"Others" ``` 然后在tasks.json文件中添加以下内容: ``` { "version": "2.0.0", "tasks": [ { "label": "build", "type": "shell", "command": "g++", "args": [ "-g", "${file}", "-o", "${fileDirname}/${fileBasenameNoExtension}" ], "group": { "kind": "build", "isDefault": true } } ] } ``` 5. 配置launch.json文件。在VSCode中打开Debug面板,点击齿轮图标,选择"C++(GDB/LLDB)",然后在launch.json文件中添加以下内容: ``` { "version": "0.2.0", "configurations": [ { "name": "(gdb) Launch", "type": "cppdbg", "request": "launch", "program": "${fileDirname}/${fileBasenameNoExtension}", "args": [], "stopAtEntry": false, "cwd": "${workspaceFolder}", "environment": [], "externalConsole": true, "MIMode": "gdb", "setupCommands": [ { "description": "Enable pretty-printing for gdb", "text": "-enable-pretty-printing", "ignoreFailures": true } ] } ] } ``` 6. 编写C++代码并进行编译和调试。在VSCode中打开C++源文件,按下F5键进行编译和调试。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值