文章

C++开发环境搭建

ubuntu24.04搭建开发环境

在ubuntu下,进行C/C++开发需要安装gcc/g++编译器,以及make工具,直接安装build-essential可以安装相关的构建工具。

1
2
3
sudo apt update
sudo apt upgrade
sudo apt install build-essential

现在很多项目都使用到了cmake工具,还需要安装cmake:

1
sudo apt install cmake

至此,所必须的工具都已安装完成。

ssh远程连接

直接使用终端进行开发会十分不方便,主要还是使用IDE远程SSH连接到服务器进行开发。为了方便SSH远程连接,需要将ssh公钥发送到服务器上。在windows的cmd中输入ssh-keygen,然后一路回车。最后在当前目录下的.ssh中找到生成的公钥,用记事本打开公钥,把公钥里的内容,粘贴到服务器上的~/.ssh/authorized_keys中。

这样,进行ssh远程连接就不需要输入用户密码了。

vscode开发插件安装

ssh插件

首先需要安装ssh插件

image1

再配置好ssh后,就可以远程访问服务器了。

1
2
3
Host ubuntu-server
  HostName 192.168.25.130
  User test

为了更好的开发,需要安装c++相关的插件。这里推荐使用clangd插件。

clangd插件

image2

clangd插件的使用需要在远程服务器中安装llvm

1
wget https://github.com/llvm/llvm-project/releases/download/llvmorg-19.1.0/LLVM-19.1.0-Linux-X64.tar.xz

[!NOTE]

截止目前为止,最新版本是19.1.0

然后解压放到某个公共目录即可。这里我是放在/opt下的。

随后还需要在vscode中配置clangd插件,指定clangd的路径。

1
2
3
{
    "clangd.path": "/opt/LLVM-19.1.0-Linux-X64/bin/clangd"
}

[!NOTE]

需要配置到远程服务器上

clangd插件会依赖于compile_commands.json,这个可以通过cmake来生成。为了方便使用cmake,推荐使用cmake插件

cmake插件

image3

对于某个开源项目,会有若干cmake参数才能正常完成cmake的构建。可以配置cmake参数

1
2
3
4
5
6
7
8
9
{
    "cmake.configureArgs": [
        "-DCMAKE_INSTALL_PREFIX=~/local",
        "-DBUILD_SHARED_LIBS=ON",
        "-DTHIRDPARTY=FORCE",
        "-DTHIRDPARTY_UPDATE=ON",
        "-DCOMPILE_EXAMPLES=ON"
    ]
}

[!NOTE]

推荐配置到当前项目的工作区中

随后构建,就会在build目录下生成compile_commands.json文件,方便clangd插件工作。

[!NOTE]

clangd插件默认情况下会在工作区下生成.cache目录

调试

这里推荐使用CodeLLDB插件进行代码调试。

image4

CodeLLDB默认情况下,会调试到汇编代码。需要配置

1
"lldb.showDisassembly": "never",

当项目编译后,需要配置在工作区配置launch.json

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
{
    // 使用 IntelliSense 了解相关属性。 
    // 悬停以查看现有属性的描述。
    // 欲了解更多信息,请访问: https://go.microsoft.com/fwlink/?linkid=830387
    "version": "0.2.0",
    "configurations": [
        
        {
            "type": "lldb",
            "request": "launch",
            "name": "Debug",
            "program": "${workspaceFolder}/<executable file>",
            "args": [],
            "cwd": "${workspaceFolder}"
        }
    ]
}

可以指定program指定编译好的程序的路径。在args中也可以指定程序的参数。如果需要配置程序运行环境,可以如下配置:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
{
    // 使用 IntelliSense 了解相关属性。 
    // 悬停以查看现有属性的描述。
    // 欲了解更多信息,请访问: https://go.microsoft.com/fwlink/?linkid=830387
    "version": "0.2.0",
    "configurations": [
        
        {
            "type": "lldb",
            "request": "launch",
            "name": "Debug",
            "program": "${workspaceFolder}/<executable file>",
            "args": ["s", "dsfs"],
            "cwd": "${workspaceFolder}",
            "env": {
                "xxxx": "111" // 指定运行参数
            }
        }
    ]
}
本文由作者按照 CC BY 4.0 进行授权