3

C 语言教程: Linux VS Code 构建开发环境

 1 year ago
source link: https://www.myfreax.com/linux-vs-code-c-dev-environment/
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.
neoserver,ios ssh client

C 语言教程: Linux VS Code 构建开发环境

开发环境一直与指定技术紧密结合,开发者也在工具与另一种工具之间的激烈争论。这些争论产生我们今日所使用工具,来看看如何在 Linux 使用 VS Code 构建 C 语言开发环境

Updated At 10 Jun 2023 7 min read
By myfreax
C 语言教程: Linux VS Code 构建开发环境

C 语言教程: Linux VS Code 构建开发环境

无论您是否是《指环王》电影的粉丝,您都会同意几乎每个人都喜欢统一性,而拥有统一的开发体验是开发人员一直在努力和欢迎的东西。

长期以来,开发环境一直与特定技术紧密结合,例如 Visual Studio 主要用于 .NET 与 Windows 的开发。也看到开发人员之间的激烈争论,他们在无休止地争论一种工具与另一种工具的差别。

我相信这永远不会结束,也不应该结束,因为很多时候这些争论会产生我们今天正在使用的工具。

在本教程中,我们将与您分享如何在 Linux  构建 C 语言开发环境使用VS Code 编辑器。

如果您已经将 VS Code 与其他一些编程语言一起使用,那么您已经成功了一半。对于其他人,你们可以看看 Linux 用户都是怎么构建自己的开发环境,以及是否想尝试一下。

VS Code

VS Code 是一个轻量级、开源、自由且可扩展的 IDE,并且它每天都在变得更好。我经常在 Node.JS 开发工作中使用 VS Code。

c---1.webp

Fedora / CentOS 安装 C / C++ 开发工具

yum groupinstall 'Development Tools'

Ubuntu / Debian 安装 C / C++ 开发工具

sudo apt-get update
sudo apt-get install build-essential manpages-dev

安装 Vscode

VScode 具体安装方式请参考我们的教程如何在 Linux 安装 Vscode,教程包括在各种Linux 发行版安装 VScode。例如 CentOS,Ubuntu,Debian。

安装Vscode

安装 C / C++ for Visual Studio Code 扩展

打开你的 VS Code,在左侧工具栏中点击扩展图标按钮或者使用快捷键Ctrl+Shift+X  然后搜索 C/C++ 扩展,点击安装 Install。

image-7.webp

配置 VS Code  C / C++扩展

如果你是一个JavaScript 开发者,也许会看不惯函数之后的中括号 { 换行。这种风格只有对长期使用不换行的人才就会形成强逼症,习惯已经养成难以改变。

但这是 C / C++ 的默认风格。如果你不想折腾请继续使用这种风格。毕竟是官方标准,形成这个习惯看很多 C / C++ 代码就不难了。

还有一点就是写着写着中括号不知道在那里。接下来我们改变这种函数后面中括号的换行的风格,比较工资不是按行数给的。

打开 VS Code 设置,找到 C / C++ 扩展设置,在搜索框中输入 format,找到 C_Cpp: Clang_format_fallback Style 设置。

这是一个输入框,可以输入值是 Visual StudioLLVMGoogleChromiumMozillaWebKitMicrosoftGNUnone

个人选择 Google 风格,Google 风格与 JavaScript 的代码风格可以说是一致。请根据你的个人喜好配置,这里不细说各个风格设置。你也可以直接以 JSON 格式编辑 VS Code 的设置文件。

{
    "C_Cpp.clang_format_fallbackStyle": "Google",
}

创建 C 语言项目

运行 cd命令切换到家目录并运行 mkdir 命令 mkdir -p cpp/helloworld 创建 C 语言项目。

#include <stdio.h>

int main() {
  char* message = "hello myfreax.com!\n";
  printf("%s", message);
  return 0;
}
main.c

VS Code 调试 C 语言项目

接下来配置VS Code,调试 C 语言代码。首先在你的项目根目录创建文件夹 .vscode。运行命令 mkdir -p .vscode

mkdir -p .vscode

.vscode 目录创建三个文件,分别是 c_cpp_properties.jsonlaunch.jsontasks.json

{
  "configurations": [
      {
          "name": "myfreax.com",
          "compilerPath": "/usr/bin/gcc",
          "cStandard": "c23",
          "cppStandard": "c++17",
          "includePath": [
              "${workspaceFolder}"
          ],
          "browse": {
              "path": [
                  "${workspaceFolder}"
              ],
              "limitSymbolsToIncludedHeaders": false
          }
      }
  ],
  "version": 4
}
c_cpp_properties.json

c_cpp_properties.json 文件主要是配置 C 语言项目 include 路径,以及使用C / C++的版本。

在这个示例中使用 C 的标准库版本是 C23,C++ 的标准库版本是 C17。include 路径是标准的 Linux 系统头文件路径和项目目录的 include 目录。

{
  "version": "0.2.0",
  "configurations": [
    {
      "name": "C/C++: gcc build and debug active file",
      "type": "cppdbg",
      "request": "launch",
      "program": "${fileDirname}/${fileBasenameNoExtension}",
      "args": [],
      "stopAtEntry": false,
      "cwd": "${workspaceFolder}",
      "environment": [],
      "externalConsole": false,
      "MIMode": "gdb",
      "miDebuggerPath": "/usr/bin/gdb",
      "setupCommands": [
        {
          "description": "Enable pretty-printing for gdb",
          "text": "-enable-pretty-printing",
          "ignoreFailures": true
        }
      ],
      "preLaunchTask": "C: gcc build active file"
    }
  ]
}
launch.json

launch.json 文件主要用于指定可执行文件启动方式和选项,通常可执行程序启动方式可以在终端直接运行。

由于我们需要调试并运行运行程序,因此我们使用 gdb 调试器启动可执行文件。在 Linux gdb 调试器的默认路径是 /usr/bin/gdb。

在这里我们也说说一些重要的选项,program 指定可执行文件的绝对路径,cwd 指定工作目录,通常是项目根目录,${workspaceFolder} 表示项目根目录。

如果你的可执行文件需要传递参数,可以在 args 数组指定要传递的参数,environment  顾名思义,也就是环境变量,你可以在程序运行后获取指定的环境变量。

还有一个非常重要的选项是 preLaunchTask ,允许你在运行程序之前,执行指定的任务,在 C 语言的项目中,通常是编译项目。

{
  "version": "2.0.0",
  "tasks": [
    {
      "type": "shell",
      "label": "C: gcc build active file",
      "command": "/usr/bin/gcc",
      "args": [
        "-I",
        "${workspaceFolder}",
        "-g",
        "${file}",
        "${workspaceFolder}/libs.c",
        "-o",
        "${fileDirname}/${fileBasenameNoExtension}",
        "-lm",
        "-pthread"
      ],
      "options": {
        "cwd": "/usr/bin"
      },
      "problemMatcher": [
        "$gcc"
      ],
      "group": {
        "kind": "build",
        "isDefault": true
      },
      "detail": "Task generated by Debugger."
    }
  ]
}
tasks.json

tasks.json 文件主要用于编译 C 语言项目文件并生成一个可执行文件,可执行文件用于在启动调试时候使用。

tasks.json 文件中的 command 允许你指定编译器,在 Linux 默认是 gcc,但你需要指定绝对路径因此是 /usr/bin/gcc

args 用于指定 C 编译器的选项,你可以看到此示例中我们启用了线程(-pthread),数学(-lm)的标准库,并在根目录添加一个文件 libs.c

注意:如果你的项目根目录没有 libs.c  文件,请删除 libs.c

你可能还注意到一个奇怪的参数 ${fileDirname}/${fileBasenameNoExtension} ,其实这个参数是指定给 gcc 的 -o 选项, -o 选项指示 gcc 要生成的文件名称。

因此,你可以想到 ${fileDirname} 应该是当前活动的文件,${fileBasenameNoExtension} 顾名思义也就是没有扩展名的文件名。main.c 将会生成可执行文件 main。

当文件创建完成后,你可以按快捷键 ctrl+shift+b 仅构建项目,也可以直接按快捷键 F5 开始进行调试。

至此,你已经熟悉如何在 Linux 使用 VS Code 构建 C 语言开发环境。如果你遇到任何问题,欢迎在下面发表评论。


Recommend

  • 12

    相信对看了前面几节内容的朋友来说,在 linux 中开发 C语言程序已经不在话下了。不过,不知道大家注意到没,我们自己写的C语言程序编译后,要想在 shell 中执行,往往还要将可执行程序的路径也输入。

  • 5

    VS Code搭建C/C++开发环境超详细教程

  • 4

    使用Toolbox构建容器中的开发环境(无需root权限) Toolbox允许你基于容器创建相互独立的开发环境,它与Docker不同之处在于,它的底层通过podman来实现(因此无需root权限),而且它会尝试将容器与现有的主机环境无缝整合起来。 安装Tool...

  • 4

    更新于 2021/12/29 |  创建于 2021/12/24 如何在Linux/MacOS使用vscode构建一个c/c++开发环境 无论您是否是《指环王...

  • 9
    • blog.guyskk.com 2 years ago
    • Cache

    使用Docker构建高效Web开发环境

    使用Docker构建高效Web开发环境2016年, 11月8日本文介绍如何使用 Docker 构建一个高效的 Web 开发环境(Linux+Docker+Python+JavaScript),这也是我的日常开发环境。准备Docker安装Docker

  • 4

    使用 Vite 已经有两年了,期间使用它开发过单页面应用,也开发过浏览器扩展插件,对比日常工作中用到的 webpack 构建速度大幅提升,开发体验也好很多。 虽然相比于 webpack 来说简单了很多,但是仍然有一些配置需要记录一下,以便之后可以快速搭建一个本地开发...

  • 4

    Dcoker实战:Linux环境安装Redis图文教程 作者:郝光明 2022-09-19 07:08:28 今天给大家分享docker安装Redis图文教程,服务器版本为Centos8,希望对大家能有所帮助!

  • 4

    如何开发Vite3插件构建Electron开发环境 ...

  • 7

    1、部署docker引擎只有部署了docker引擎,docker容器才能在任何不同主机环境运行。[root@master ~]# yum install -y yum-utils device-mapper-persistent-data lvm2[root@master ~]# yum-config-manager -...

  • 3
    • www.biaodianfu.com 4 months ago
    • Cache

    Visual Studio Code配置C语言环境

    Visual Studio Code的安装 下载地址:https://code.visualstudio.com/,一路无脑安装即可。 VStudio Code扩展的安装 1、安装下面3个C/C++支持扩展

About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK