一、引言
在 C/C++ 开发的广袤天地里,选择一款称手的开发工具至关重要,而 Visual Studio Code(简称 VSCode)无疑是众多开发者的心头好。VSCode 是微软精心打造的一款轻量级代码编辑器,别看它身材小巧,能量却不容小觑。它就像一个万能的瑞士军刀,支持多种编程语言,从热门的 Python 到古老而强大的 C/C++,统统不在话下。通过丰富的扩展生态系统,你可以根据自己的需求为它量身定制各种功能,把它打造成独一无二的开发利器。比如安装一个代码格式化插件,就能让代码瞬间变得整齐美观;安装一个代码补全插件,敲代码的速度就能像坐了火箭一样快。
搭建一个高效的 C/C++ 开发环境,就如同为一场精彩的演出搭建舞台,是后续开发工作顺利开展的重要基石。只有舞台搭建好了,演员们才能尽情施展才华,而只有开发环境搭建好了,开发者们才能在代码的世界里自由驰骋。接下来,我将一步一步带你搭建属于你的 VSCode C/C++ 开发环境,让我们一起开启这场奇妙的编程之旅吧!
二、前期准备
2.1 下载安装 VSCode
首先,我们需要前往 VSCode 的官方网站:Visual Studio Code - Code Editing. Redefined ,这是获取正版 VSCode 最可靠的途径。进入官网后,你会看到醒目的 “下载” 按钮,点击它,根据你的操作系统(Windows、Linux 或 macOS)选择对应的版本。例如,Windows 系统下一般选择 64 位的安装包,如果你的系统是 32 位,则选择 32 位版本。
下载完成后,找到下载的安装包,通常是一个.exe 文件,双击它开始安装之旅。安装过程中,会弹出一系列的设置窗口。在 “许可协议” 界面,仔细阅读协议内容后,点击 “我同意”。接着是选择安装路径,如果你对电脑磁盘空间和文件管理比较熟悉,可以自定义路径,将 VSCode 安装到非系统盘,如 D 盘,以节省系统盘空间;若不太了解,保持默认路径即可,默认路径一般在系统盘的 Program Files 文件夹下,能保证软件的稳定性和兼容性。
在后续的步骤中,建议勾选 “创建桌面快捷方式”,这样安装完成后,你可以在桌面上快速找到并打开 VSCode,就像在书架上标记了一本常用的书,随时都能拿到。另外,还可以勾选 “将 VSCode 添加到 PATH 环境变量”,这一步很重要,它能让你在命令行中直接运行 VSCode,方便你在不同的工作场景中使用,比如在项目文件夹的路径下,直接通过命令行打开 VSCode 进行开发。设置完成后,点击 “安装”,等待安装程序完成工作,就像等待快递员把包裹送到你手中一样,安装完成后,点击 “完成”,VSCode 就成功安装在你的电脑上啦!
2.2 选择 C/C++ 编译器
接下来,我们要为 VSCode 找到一个合适的 C/C++ 编译器,它就像是汽车的发动机,为代码的运行提供动力。不同的操作系统有不同的推荐编译器。
如果你使用的是 Windows 系统,MinGW-w64 是一个非常不错的选择。它是 MinGW 的升级版,能够支持 64 位系统,并且提供了丰富的库和工具。你可以在https://sourceforge.net/projects/mingw-w64/ 这个网站下载它。进入网站后,点击 “Download” 按钮,在下载页面中,根据你的需求选择合适的版本,一般选择 “x86_64-posix-seh” 版本,它适用于 64 位系统,并且采用了 SEH 异常处理机制,能更好地处理程序中的异常情况。下载完成后,解压安装包到你指定的目录,比如 D 盘的 mingw64 文件夹。然后,将解压后的 bin 目录添加到系统的 PATH 环境变量中,这样系统就能找到编译器的可执行文件了。添加环境变量的方法是:右键点击 “此电脑”,选择 “属性”,在弹出的窗口中点击 “高级系统设置”,在 “系统属性” 窗口中点击 “环境变量”,在 “系统变量” 中找到 “Path” 变量,点击 “编辑”,在弹出的编辑环境变量窗口中点击 “新建”,将 mingw64 的 bin 目录路径添加进去,例如 “D:\mingw64\bin”,然后点击 “确定” 保存设置。
对于 Linux 系统,GCC(GNU Compiler Collection)是默认且广泛使用的编译器,就像 Linux 系统的标配一样。大多数 Linux 发行版在安装系统时就已经自带了 GCC,你可以在终端中输入 “gcc -v” 命令来检查是否安装以及查看版本信息。如果没有安装,在 Ubuntu 系统中,可以使用命令 “sudo apt-get install build-essential” 来安装;在 CentOS 系统中,使用命令 “sudo yum groupinstall 'Development Tools'” 来安装。安装过程中,系统会自动下载并安装 GCC 及其相关依赖包,就像自动为你的电脑配备了一套完整的工具。
如果你是 macOS 用户,Xcode Command Line Tools 是首选。它包含了 Clang 编译器等开发工具,是苹果官方推荐的开发工具集。你可以在终端中输入 “xcode-select --install” 命令来安装,执行该命令后,系统会弹出安装窗口,按照提示进行安装即可。安装完成后,Clang 编译器就可以使用了,它与 macOS 系统紧密结合,能够充分发挥系统的性能优势。
2.3 必备插件安装
VSCode 之所以强大,很大程度上得益于它丰富的插件生态系统,这些插件就像是给 VSCode 装上了各种神奇的装备,让它拥有更强大的功能。对于 C/C++ 开发,有几个插件是必不可少的。
第一个要安装的是 “C/C++” 插件,它由微软官方出品,就像是微软为 VSCode 量身定制的一件铠甲,专门用于处理 C/C++ 代码。安装这个插件后,VSCode 将拥有一系列强大的功能,如语法高亮,它会用不同的颜色显示代码中的关键字、变量、注释等,让你的代码看起来一目了然,就像给代码穿上了一件彩色的外衣;代码自动补全,当你输入代码时,它会根据上下文自动提示可能的代码,大大提高了代码编写的效率,就像有一个智能助手在旁边帮你敲代码;智能提示,它能在你编写代码时给出有用的建议,比如函数的参数、变量的类型等,让你少犯错;定义跳转,当你想查看某个函数或变量的定义时,只需点击一下,就能快速跳转到定义处,方便你查看代码的逻辑。安装方法很简单,打开 VSCode,点击左侧边栏的扩展图标(看起来像四个方块),在搜索框中输入 “C/C++”,在搜索结果中找到由 Microsoft 提供的 “C/C++” 插件,点击 “安装” 按钮即可。
另一个重要的插件是 “Code Runner”,它就像是一个快捷启动按钮,能让你在 VSCode 中直接运行代码,无需离开编辑器去命令行编译运行,省去了很多繁琐的步骤。它支持多种编程语言,当然也包括 C/C++。安装完成后,当你编写完 C/C++ 代码,只需点击编辑器右上角的运行按钮,或者使用快捷键 Ctrl+Alt+N(Windows 和 Linux 系统)、Cmd+Option+N(macOS 系统),就能快速运行代码,并在下方的终端中看到输出结果,就像按下了汽车的启动键,代码立刻开始运行。安装 “Code Runner” 插件的步骤与安装 “C/C++” 插件类似,在扩展搜索框中输入 “Code Runner”,找到后点击 “安装”。
除了这两个插件,你还可以根据自己的需求安装其他插件,比如 “GitLens”,它能增强 VSCode 对 Git 的支持,让你更好地进行版本控制,就像给你的代码加上了一个时间轴,随时可以查看代码的历史版本;“Rainbow Brackets”,它会用不同的颜色显示匹配的括号,让你的代码结构更加清晰,就像给代码中的括号穿上了彩色的标识,一眼就能看出它们的对应关系。这些插件都可以在 VSCode 的扩展市场中搜索并安装,根据自己的开发需求,为 VSCode 打造一个专属的开发环境。
三、Windows 系统配置
3.1 安装 MinGW-w64
MinGW-w64 是 Windows 系统下常用的 C/C++ 编译器,它是 MinGW 的升级版,能够支持 64 位系统,并且提供了更丰富的功能和更好的性能。
首先,前往 MinGW-w64 的下载地址:https://sourceforge.net/projects/mingw-w64/ 。进入网站后,在 “Files” 部分,你会看到各种版本的下载链接。这里需要根据你的系统情况进行选择,一般来说,如果你的系统是 64 位,建议选择 “x86_64-posix-seh” 版本,其中 “x86_64” 表示 64 位系统,“posix” 是一种可移植操作系统接口,适用于多种系统开发,“seh” 是一种异常处理模型,性能较好且支持 64 位系统 。如果你是 32 位系统,则选择 “i686-posix-sjlj” 版本,“i686” 表示 32 位系统,“sjlj” 是一种稳定的异常处理模型,同时支持 32 位和 64 位系统。
下载完成后,得到一个压缩包,将其解压到你希望安装的目录,比如 “D:\mingw64”。解压完成后,需要将 MinGW-w64 的 “bin” 目录添加到系统的环境变量中,这样系统才能找到编译器的可执行文件。具体操作步骤如下:
- 右键点击 “此电脑”,选择 “属性”。
- 在弹出的窗口中,点击左侧的 “高级系统设置”。
- 在 “系统属性” 窗口中,点击 “环境变量” 按钮。
- 在 “系统变量” 区域中,找到 “Path” 变量,点击 “编辑”。
- 在弹出的 “编辑环境变量” 窗口中,点击 “新建”,然后将 “D:\mingw64\bin”(根据你实际的解压路径填写)添加进去,点击 “确定” 保存设置。
添加完环境变量后,需要验证 MinGW-w64 是否安装成功。按下 “Win + R” 组合键,打开 “运行” 对话框,输入 “cmd” 并回车,打开命令提示符窗口。在命令提示符窗口中输入 “gcc -v”,如果安装成功,会显示 GCC 的版本信息,以及一些编译配置等相关内容,这就像你启动了一辆汽车,看到仪表盘上的各项参数正常显示,就知道汽车可以正常行驶了。例如:
Using built - in specs.
COLLECT_GCC = gcc
COLLECT_LTO_WRAPPER = D:/mingw64/bin/../libexec/gcc/x86_64 - w64 - mingw32/8.1.0/lto - wrapper.exe
Target: x86_64 - w64 - mingw32
Configured with: ../../../src/gcc - 8.1.0/configure --host = x86_64 - w64 - mingw32 --build = x86_64 - w64 - mingw32 --target = x86_64 - w64 - mingw32 --prefix = /mingw64 --with - sysroot = /c/mingw810/x86_64 - 810 - win32 - sjlj - rt_v6 - rev0/mingw64 --enable - shared --enable - static --enable - targets = all --enable - multilib --enable - languages = c,c++,fortran,lto --enable - libstdcxx - time = yes --enable - threads = win32 --enable - libgomp --enable - libatomic --enable - lto --enable - graphite --enable - checking = release --enable - fully - dynamic - string --enable - version - specific - runtime - libs --enable - sjlj - exceptions --disable - libstdcxx - pch --disable - libstdcxx - debug --enable - bootstrap --disable - rpath --disable - win32 - registry --disable - nls --disable - werror --disable - symvers --with - gnu - as --with - gnu - ld --with - arch - 32 = i686 --with - arch - 64 = nocona --with - tune - 32 = generic --with - tune - 64 = core2 --with - libiconv --with - system - zlib --with - gmp = /c/mingw810/prerequisites/x86_64 - w64 - mingw32 - static --with - mpfr = /c/mingw810/prerequisites/x86_64 - w64 - mingw32 - static --with - mpc = /c/mingw810/prerequisites/x86_64 - w64 - mingw32 - static --with - isl = /c/mingw810/prerequisites/x86_64 - w64 - mingw32 - static --with - pkgversion = 'x86_64 - win32 - sjlj - rev0, Built by MinGW - W64 project'--with - bugurl = https://sourceforge.net/projects/mingw - w64 CFLAGS = '-O2 - pipe - fno - ident - I/c/mingw810/x86_64 - 810 - win32 - sjlj - rt_v6 - rev0/mingw64/opt/include - I/c/mingw810/prerequisites/x86_64 - zlib - static/include - I/c/mingw810/prerequisites/x86_64 - w64 - mingw32 - static/include' CXXFLAGS = '-O2 - pipe - fno - ident - I/c/mingw810/x86_64 - 810 - win32 - sjlj - rt_v6 - rev0/mingw64/opt/include - I/c/mingw810/prerequisites/x86_64 - zlib - static/include - I/c/mingw810/prerequisites/x86_64 - w64 - mingw32 - static/include' CPPFLAGS =' - I/c/mingw810/x86_64 - 810 - win32 - sjlj - rt_v6 - rev0/mingw64/opt/include - I/c/mingw810/prerequisites/x86_64 - zlib - static/include - I/c/mingw810/prerequisites/x86_64 - w64 - mingw32 - static/include' LDFLAGS = '-pipe - fno - ident - L/c/mingw810/x86_64 - 810 - win32 - sjlj - rt_v6 - rev0/mingw64/opt/lib - L/c/mingw810/prerequisites/x86_64 - zlib - static/lib - L/c/mingw810/prerequisites/x86_64 - w64 - mingw32 - static/lib '
Thread model: win32
gcc version 8.1.0 (x86_64 - win32 - sjlj - rev0, Built by MinGW - W64 project)
如果显示类似上述的信息,说明 MinGW-w64 已经成功安装并配置好了,你已经为 C/C++ 开发环境搭建好了重要的一环,就像为房子打好了坚实的地基。
3.2 VSCode 配置
安装好 VSCode、MinGW-w64 以及相关插件后,还需要对 VSCode 进行一些配置,才能让它更好地为 C/C++ 开发服务。
首先,创建一个工作区。工作区就像是你的项目文件夹,所有与项目相关的文件都可以放在这里。打开 VSCode,点击菜单栏中的 “文件”->“打开文件夹”,选择你想要作为工作区的文件夹,比如 “D:\cpp_project”。如果这个文件夹不存在,可以先在资源管理器中创建好。
接着,在工作区中新建一个 C++ 文件。点击 VSCode 左侧边栏的 “文件资源管理器” 图标(看起来像一个文件夹),在工作区文件夹上右键点击,选择 “新建文件”,将文件命名为 “main.cpp”,注意文件名的后缀必须是 “.cpp”,这是 C++ 文件的标准后缀,就像给文件贴上了一个标签,让 VSCode 知道这是一个 C++ 文件。
然后,我们需要配置 VSCode 的一些关键文件,以实现编译和调试功能。
- 配置 tasks.json 文件:这个文件主要用于配置构建任务,比如编译 C++ 代码。在 VSCode 中,按下 “Ctrl + Shift + B” 组合键,会弹出一个提示框,询问你选择构建任务。如果是第一次使用,会提示 “没有找到任务。请选择配置任务以创建 tasks.json 文件”,点击 “C/C++: gcc.exe build active file”(如果你安装的是其他编译器,可能会有不同的选项),VSCode 会自动在工作区的 “.vscode” 文件夹下生成一个 “tasks.json” 文件。如果没有自动生成,可以手动创建。在工作区文件夹中,创建一个名为 “.vscode” 的文件夹(注意前面有一个点),然后在这个文件夹中新建一个文件,命名为 “tasks.json”。
打开 “tasks.json” 文件,其内容大致如下:
{
"version": "2.0.0",
"tasks": [
{
"label": "build",
"type": "shell",
"command": "g++",
"args": [
"-g",
"${file}",
"-o",
"${fileDirname}/${fileBasenameNoExtension}"
],
"group": {
"kind": "build",
"isDefault": true
},
"problemMatcher": ["$gcc"]
}
]
}
其中,“label” 是任务的标签,可以自定义;“type” 表示任务类型,这里使用 “shell” 表示通过命令行执行任务;“command” 是执行的命令,这里是 “g++”,即 C++ 编译器;“args” 是命令的参数,“-g” 表示生成调试信息,“\({file}”表示当前打开的文件,“-o”表示输出文件,“\){fileDirname}/${fileBasenameNoExtension}” 表示输出文件的路径和文件名(去掉扩展名),比如当前文件是 “main.cpp”,则输出文件为 “main”,放在当前文件所在的目录;“group” 用于指定任务组,“kind” 为 “build” 表示这是一个构建任务,“isDefault” 为 “true” 表示这是默认的构建任务;“problemMatcher” 用于匹配编译过程中的错误和警告信息。
这个配置的作用是,当你按下 “Ctrl + Shift + B” 时,VSCode 会调用 “g++” 编译器,对当前打开的 C++ 文件进行编译,并生成一个可执行文件,就像工厂按照特定的生产流程,将原材料加工成产品一样。
- 配置 launch.json 文件:这个文件用于配置调试任务,让你可以在 VSCode 中调试 C++ 代码。点击 VSCode 左侧边栏的 “运行和调试” 图标(看起来像一个虫子),在弹出的界面中点击 “创建 launch.json 文件”,选择 “C++ (GDB/LLDB)”,VSCode 会在 “.vscode” 文件夹下生成一个 “launch.json” 文件。
打开 “launch.json” 文件,其内容大致如下:
{
"version": "0.2.0",
"configurations": [
{
"name": "(gdb) Launch",
"type": "cppdbg",
"request": "launch",
"program": "${fileDirname}/${fileBasenameNoExtension}",
"args": [],
"stopAtEntry": false,
"cwd": "${workspaceFolder}",
"environment": [],
"externalConsole": false,
"MIMode": "gdb",
"miDebuggerPath": "D:/mingw64/bin/gdb.exe",
"setupCommands": [
{
"description": "Enable pretty - printing for gdb",
"text": "-enable-pretty-printing",
"ignoreFailures": true
}
]
}
]
}
其中,“name” 是调试配置的名称;“type” 表示调试类型,这里是 “cppdbg”,用于 C++ 调试;“request” 表示请求类型,“launch” 表示启动调试;“program” 表示要调试的程序,这里使用 “\({fileDirname}/\){fileBasenameNoExtension}” 表示当前打开文件编译生成的可执行文件;“args” 是传递给程序的参数,这里为空;“stopAtEntry” 表示是否在程序入口处暂停,“false” 表示不暂停;“cwd” 表示工作目录,这里是工作区文件夹;“environment” 用于设置环境变量,这里为空;“externalConsole” 表示是否使用外部控制台,“false” 表示在 VSCode 内部的终端中显示输出;“MIMode” 表示调试器的模式,这里是 “gdb”;“miDebuggerPath” 表示 GDB 调试器的路径,根据你实际的 MinGW-w64 安装路径填写;“setupCommands” 是一些调试前的设置命令。
这个配置的作用是,当你点击 “运行和调试” 界面中的绿色三角形按钮(或按下 F5 键)时,VSCode 会启动调试器,加载你编译好的可执行文件,并按照配置进行调试,就像给汽车安装了一个精密的检测仪器,让你可以详细了解汽车的运行情况。
- 配置 c_cpp_properties.json 文件:这个文件用于配置 C/C++ 的相关属性,比如编译器路径、包含路径等。在 VSCode 中,按下 “Ctrl + Shift + P” 组合键,输入 “C/C++: Edit Configurations (UI)” 并回车,会弹出一个图形化的配置界面。在这个界面中,你可以设置 “IntelliSense 模式”(比如 “gcc-x86_64”),“编译器路径”(一般会自动检测到 MinGW-w64 的 “g++” 编译器路径,如果没有检测到,手动填写,如 “D:\mingw64\bin\g++.exe”),“包含路径”(用于指定头文件的搜索路径,比如 “D:\mingw64\include” 等)。
也可以直接编辑 “c_cpp_properties.json” 文件,该文件也在 “.vscode” 文件夹下。其内容大致如下:
{
"configurations": [
{
"name": "Win32",
"includePath": [
"${workspaceFolder}/**",
"D:/mingw64/include"
],
"defines": [
"_DEBUG",
"UNICODE",
"_UNICODE"
],
"windowsSdkVersion": "10.0.19041.0",
"compilerPath": "D:/mingw64/bin/g++.exe",
"cStandard": "c17",
"cppStandard": "c++17",
"intelliSenseMode": "gcc-x86_64"
}
],
"version": 4
}
其中,“includePath” 用于指定包含路径,“defines” 用于定义一些预处理器宏,“windowsSdkVersion” 是 Windows SDK 的版本,“compilerPath” 是编译器路径,“cStandard” 和 “cppStandard” 分别指定 C 和 C++ 的标准,“intelliSenseMode” 是 IntelliSense 模式。
这个配置的作用是,为 VSCode 的代码智能提示、语法检查等功能提供必要的信息,就像给导航系统输入目的地和路线信息,让它能准确地引导你前进。
四、Linux 系统配置
4.1 安装 GCC 编译器
在 Linux 系统中,GCC 是默认且广泛使用的 C/C++ 编译器,就像 Linux 系统的标配一样。大多数 Linux 发行版在安装系统时就已经自带了 GCC,你可以在终端中输入 “gcc -v” 命令来检查是否安装以及查看版本信息。如果没有安装,不同的 Linux 发行版有不同的安装命令。
在 Ubuntu 系统中,GCC 和 G++ 通常是作为 “build-essential” 软件包的一部分进行安装的。打开终端,输入以下命令:
sudo apt update
sudo apt install build-essential
“sudo apt update” 命令用于更新软件源列表,确保获取到最新的软件包信息,就像你更新手机应用列表,以获取最新版本的应用。“sudo apt install build-essential” 命令则用于安装 “build-essential” 软件包,该软件包包含了 GCC、G++、make 等一系列开发工具,一次性满足你的多种开发需求,就像购买了一个开发工具大礼包。
在 CentOS 系统中,安装 GCC 和 G++ 的方式略有不同。同样打开终端,输入以下命令:
sudo yum groupinstall 'Development Tools'
这条命令会安装 “Development Tools” 软件组,其中也包含了 GCC 和 G++ 编译器,以及其他常用的开发工具,比如 make、autoconf 等。这些工具在 C/C++ 开发中都起着重要的作用,make 用于自动化构建项目,autoconf 用于自动生成配置脚本,它们就像一群默契的伙伴,共同助力你的开发工作。
安装完成后,可以通过 “gcc --version” 和 “g++ --version” 命令来验证安装是否成功。如果安装成功,会显示 GCC 和 G++ 的版本信息,例如:
gcc (Ubuntu 9.4.0-1ubuntu1~20.04.1) 9.4.0
Copyright (C) 2019 Free Software Foundation, Inc.
This is free software; see the source for copying conditions. There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
g++ (Ubuntu 9.4.0-1ubuntu1~20.04.1) 9.4.0
Copyright (C) 2019 Free Software Foundation, Inc.
This is free software; see the source for copying conditions. There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
显示类似上述的信息,就说明 GCC 和 G++ 已经成功安装在你的 Linux 系统中,为后续的 C/C++ 开发做好了准备,就像为一场战斗准备好精良的武器。
4.2 VSCode 配置
在 Linux 系统中配置 VSCode 进行 C/C++ 开发,与 Windows 系统有一些相似之处,但也存在一些不同点。
首先,创建一个工作区。打开 VSCode,点击菜单栏中的 “文件”->“打开文件夹”,选择你想要作为工作区的文件夹,比如 “/home/user/cpp_project”。Linux 系统的文件路径采用正斜杠 “/” 作为分隔符,与 Windows 系统的反斜杠 “\” 不同,这是需要注意的地方,就像不同国家的交通规则有所不同一样。
接着,在工作区中新建一个 C++ 文件。点击 VSCode 左侧边栏的 “文件资源管理器” 图标,在工作区文件夹上右键点击,选择 “新建文件”,将文件命名为 “main.cpp”。
然后,配置 VSCode 的关键文件。
- 配置 tasks.json 文件:在 VSCode 中,按下 “Ctrl + Shift + B” 组合键,选择 “C/C++: gcc build active file”(如果没有这个选项,可能需要手动安装 “C/C++” 插件),VSCode 会自动在工作区的 “.vscode” 文件夹下生成一个 “tasks.json” 文件。如果没有自动生成,手动创建一个 “.vscode” 文件夹,然后在其中新建 “tasks.json” 文件。
打开 “tasks.json” 文件,其内容大致如下:
{
"version": "2.0.0",
"tasks": [
{
"label": "build",
"type": "shell",
"command": "g++",
"args": [
"-g",
"${file}",
"-o",
"${fileDirname}/${fileBasenameNoExtension}"
],
"group": {
"kind": "build",
"isDefault": true
},
"problemMatcher": ["$gcc"]
}
]
}
这个配置与 Windows 系统下的类似,“label” 是任务标签,“type” 为 “shell” 表示通过命令行执行任务,“command” 是 “g++” 编译器,“args” 是编译参数,“-g” 生成调试信息,“\({file}”表示当前文件,“-o”指定输出文件,“\){fileDirname}/${fileBasenameNoExtension}” 是输出文件的路径和文件名(去掉扩展名) 。不同之处在于,Linux 系统下的文件路径表示方式是正斜杠 “/”,而且由于 Linux 系统的文件权限管理更加严格,在执行编译等操作时,可能需要注意文件的权限问题,确保当前用户对相关文件和目录有足够的读写执行权限。
- 配置 launch.json 文件:点击 VSCode 左侧边栏的 “运行和调试” 图标,点击 “创建 launch.json 文件”,选择 “C++ (GDB/LLDB)”,VSCode 会在 “.vscode” 文件夹下生成一个 “launch.json” 文件。
打开 “launch.json” 文件,其内容大致如下:
{
"version": "0.2.0",
"configurations": [
{
"name": "(gdb) Launch",
"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
}
]
}
]
}
与 Windows 配置相比,“miDebuggerPath” 指定的 GDB 调试器路径在 Linux 系统下一般是 “/usr/bin/gdb”,这是 Linux 系统中 GDB 调试器的常见安装路径。另外,在 Linux 系统中,环境变量的设置方式也有所不同,通常是在终端中通过 “export” 命令设置,或者在相关的配置文件中进行设置,在 “launch.json” 中设置环境变量时,需要遵循 Linux 系统的规则。
- 配置 c_cpp_properties.json 文件:在 VSCode 中,按下 “Ctrl + Shift + P” 组合键,输入 “C/C++: Edit Configurations (UI)” 并回车,在弹出的图形化配置界面中,可以设置 “IntelliSense 模式”(如 “gcc-x86_64”)、“编译器路径”(一般为 “/usr/bin/g++”)、“包含路径”(如 “/usr/include” 等) 。
也可以直接编辑 “c_cpp_properties.json” 文件,内容大致如下:
{
"configurations": [
{
"name": "Linux",
"includePath": [
"${workspaceFolder}/**",
"/usr/include"
],
"defines": [],
"compilerPath": "/usr/bin/g++",
"cStandard": "c17",
"cppStandard": "c++17",
"intelliSenseMode": "gcc-x86_64"
}
],
"version": 4
}
在 Linux 系统下,“includePath” 中添加的系统头文件路径一般是 “/usr/include”,这是 Linux 系统中头文件的常见存放位置。同时,由于 Linux 系统的多样性,不同发行版的文件结构和路径可能会略有差异,在配置时需要根据实际情况进行调整。
通过以上配置,你就可以在 Linux 系统的 VSCode 中愉快地进行 C/C++ 开发了。在开发过程中,如果遇到问题,可以查看 VSCode 的输出面板和终端,获取详细的错误信息和调试日志,帮助你快速解决问题,就像有一个贴心的助手随时为你提供帮助。
五、macOS 系统配置
5.1 安装 Xcode 命令行工具或 Homebrew 及 GCC
在 macOS 系统上进行 C/C++ 开发,首先需要安装开发工具。Xcode Command Line Tools 是苹果官方提供的一套命令行开发工具,其中包含了 Clang 编译器,这是 macOS 系统默认的 C/C++ 编译器 ,与系统的兼容性非常好,就像原装配件与手机的适配一样。你可以在终端中输入以下命令来安装:
xcode-select --install
执行该命令后,系统会弹出一个安装窗口,按照提示进行安装即可。安装过程中,系统会自动下载并安装所需的组件,就像手机自动下载并安装系统更新一样。安装完成后,你可以在终端中输入 “clang --version” 来验证是否安装成功,如果显示 Clang 的版本信息,说明安装成功,例如:
Apple clang version 14.0.3 (clang-1403.0.22.14.1)
Target: x86_64-apple-darwin22.5.0
Thread model: posix
InstalledDir: /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin
如果你想要使用 GCC 编译器,也可以通过 Homebrew 来安装。Homebrew 是 macOS 系统上非常流行的包管理器,它就像一个软件超市,让你可以方便地安装各种软件包。首先,需要安装 Homebrew,在终端中输入以下命令:
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
这个命令会从官方网站下载并执行安装脚本,安装过程中可能需要输入你的电脑密码,以获取安装权限。安装完成后,输入 “brew --version” 验证是否安装成功,如果显示 Homebrew 的版本信息,说明安装成功。
安装好 Homebrew 后,就可以使用它来安装 GCC 了,在终端中输入:
brew install gcc
Homebrew 会自动下载 GCC 的安装包,并进行安装。安装完成后,你可以在终端中输入 “gcc --version” 来查看 GCC 的版本信息,验证是否安装成功。例如:
gcc (Homebrew GCC 12.2.0) 12.2.0
Copyright (C) 2022 Free Software Foundation, Inc.
This is free software; see the source for copying conditions. There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
5.2 VSCode 配置
安装好开发工具后,接下来配置 VSCode。
首先,创建一个工作区。打开 VSCode,点击菜单栏中的 “文件”->“打开文件夹”,选择你想要作为工作区的文件夹,比如 “/Users/yourusername/cpp_project”。
接着,在工作区中新建一个 C++ 文件。点击 VSCode 左侧边栏的 “文件资源管理器” 图标,在工作区文件夹上右键点击,选择 “新建文件”,将文件命名为 “main.cpp”。
然后,配置 VSCode 的关键文件。
- 配置 tasks.json 文件:在 VSCode 中,按下 “Command + Shift + B” 组合键,选择 “C/C++: clang++ build active file”(如果使用 GCC,则选择 “C/C++: gcc build active file”),VSCode 会自动在工作区的 “.vscode” 文件夹下生成一个 “tasks.json” 文件。如果没有自动生成,手动创建一个 “.vscode” 文件夹,然后在其中新建 “tasks.json” 文件。
打开 “tasks.json” 文件,其内容大致如下:
{
"version": "2.0.0",
"tasks": [
{
"label": "build",
"type": "shell",
"command": "clang++",
"args": [
"-g",
"${file}",
"-o",
"${fileDirname}/${fileBasenameNoExtension}"
],
"group": {
"kind": "build",
"isDefault": true
},
"problemMatcher": ["$gcc"]
}
]
}
这里的 “label” 是任务标签,“type” 为 “shell” 表示通过命令行执行任务,“command” 指定了编译器,使用 Clang 编译器时为 “clang++”,如果使用 GCC 则为 “g++” 。“args” 是编译参数,“-g” 表示生成调试信息,“\({file}”代表当前文件,“-o”用于指定输出文件,“\){fileDirname}/${fileBasenameNoExtension}” 是输出文件的路径和文件名(去掉扩展名)。“group” 用于指定任务组,“kind” 为 “build” 表示这是一个构建任务,“isDefault” 为 “true” 表示这是默认的构建任务,“problemMatcher” 用于匹配编译过程中的错误和警告信息。
- 配置 launch.json 文件:点击 VSCode 左侧边栏的 “运行和调试” 图标,点击 “创建 launch.json 文件”,选择 “C++ (GDB/LLDB)”,VSCode 会在 “.vscode” 文件夹下生成一个 “launch.json” 文件。
打开 “launch.json” 文件,其内容大致如下:
{
"version": "0.2.0",
"configurations": [
{
"name": "(lldb) Launch",
"type": "cppdbg",
"request": "launch",
"program": "${fileDirname}/${fileBasenameNoExtension}",
"args": [],
"stopAtEntry": false,
"cwd": "${workspaceFolder}",
"environment": [],
"externalConsole": false,
"MIMode": "lldb",
"preLaunchTask": "C/C++: clang++ build active file"
}
]
}
“name” 是调试配置的名称,“type” 表示调试类型为 “cppdbg”,用于 C++ 调试,“request” 为 “launch” 表示启动调试,“program” 指定要调试的程序,这里是当前文件编译生成的可执行文件 。“args” 是传递给程序的参数,“stopAtEntry” 表示是否在程序入口处暂停,“cwd” 是工作目录,“environment” 用于设置环境变量,“externalConsole” 表示是否使用外部控制台,“MIMode” 指定调试器模式,使用 LLDB 调试器时为 “lldb”,“preLaunchTask” 指定调试前要执行的任务,这里与 “tasks.json” 中的 “label” 相对应。
- 配置 c_cpp_properties.json 文件:在 VSCode 中,按下 “Command + Shift + P” 组合键,输入 “C/C++: Edit Configurations (UI)” 并回车,在弹出的图形化配置界面中,可以设置 “IntelliSense 模式”(如 “clang-x64”)、“编译器路径”(一般为 “/usr/bin/clang++”,使用 GCC 时为 “/usr/local/bin/g++”)、“包含路径”(如 “/usr/include” 等)。
也可以直接编辑 “c_cpp_properties.json” 文件,内容大致如下:
{
"configurations": [
{
"name": "Mac",
"includePath": [
"${workspaceFolder}/**",
"/usr/include"
],
"defines": [],
"macFrameworkPath": [
"/System/Library/Frameworks",
"/Library/Frameworks"
],
"compilerPath": "/usr/bin/clang++",
"cStandard": "c17",
"cppStandard": "c++17",
"intelliSenseMode": "clang-x64"
}
],
"version": 4
}
“includePath” 指定包含路径,“defines” 用于定义预处理器宏,“macFrameworkPath” 是 macOS 框架路径,“compilerPath” 是编译器路径,“cStandard” 和 “cppStandard” 分别指定 C 和 C++ 的标准,“intelliSenseMode” 是 IntelliSense 模式。通过这些配置,VSCode 就能更好地为你的 C/C++ 开发提供智能提示、语法检查等功能。
六、常见问题及解决方案
在搭建 VSCode C/C++ 环境的过程中,可能会遇到各种各样的问题,以下是一些常见问题及对应的解决方案。
6.1 环境变量配置错误
- 问题描述:在命令行中输入 “gcc -v” 或 “g++ -v” 时,提示 “'gcc' 不是内部或外部命令,也不是可运行的程序或批处理文件”,或者在 VSCode 中编译时提示找不到编译器。这通常是由于环境变量配置不正确导致的,系统无法找到编译器的可执行文件。
- 解决方案:
-
- 首先,检查编译器的安装路径是否正确。例如,MinGW-w64 的安装路径应该是解压后的目录,如 “D:\mingw64”,确保该目录下有 “bin” 文件夹,并且 “bin” 文件夹中有 “gcc.exe” 和 “g++.exe” 等文件。
-
- 然后,检查系统环境变量中 “Path” 变量的配置。在 Windows 系统中,右键点击 “此电脑”,选择 “属性”,进入 “高级系统设置”,点击 “环境变量”,在 “系统变量” 中找到 “Path” 变量,点击 “编辑”。确保 “Path” 变量中包含了编译器的 “bin” 目录路径,如 “D:\mingw64\bin”,如果没有,点击 “新建” 添加进去。注意路径之间用英文分号 “;” 隔开。
-
- 在 Linux 系统中,环境变量的配置通常在用户主目录下的 “.bashrc” 或 “.zshrc” 等文件中。打开终端,输入 “gedit ~/.bashrc”(如果使用的是 bash shell),在文件末尾添加 “export PATH=$PATH:/usr/local/bin/gcc”(根据实际的 GCC 安装路径填写),保存并关闭文件。然后在终端中输入 “source ~/.bashrc” 使配置生效。
-
- 在 macOS 系统中,如果是通过 Homebrew 安装的 GCC,Homebrew 会自动将 GCC 的路径添加到环境变量中。如果手动安装,需要在 “~/.bash_profile” 或 “~/.zshrc” 文件中添加类似 “export PATH=/usr/local/bin:$PATH” 的配置,然后执行 “source ~/.bash_profile” 或 “source ~/.zshrc” 使配置生效。
6.2 插件安装失败
- 问题描述:在 VSCode 中安装 “C/C++” 插件或 “Code Runner” 等插件时,提示安装失败,可能显示 “无法连接到扩展市场”“下载失败” 等错误信息。
- 解决方案:
-
- 网络问题:这是最常见的原因之一。首先检查网络连接是否正常,可以尝试访问其他网站,如百度等。如果网络连接正常,但仍然无法安装插件,可能是网络代理设置问题。在 VSCode 中,点击左下角的齿轮图标,选择 “设置”,在搜索框中输入 “proxy”,找到 “HTTP Proxy” 和 “HTTPS Proxy” 设置项,确保代理设置正确。如果不需要代理,将这两项设置为空。另外,某些防火墙或杀毒软件可能会阻止 VSCode 访问插件市场,可以暂时关闭防火墙或杀毒软件,或者将 VSCode 添加到信任列表中,然后再次尝试安装插件。
-
- VSCode 版本兼容性问题:如果使用的是较旧版本的 VSCode,可能会出现插件无法安装的情况。更新 VSCode 到最新版本,通常可以解决兼容性问题。在 VSCode 中,点击菜单栏中的 “帮助”->“检查更新”,按照提示进行更新。另外,有些插件可能要求较新版本的 VSCode 才能运行,在安装插件时,注意查看插件的版本要求。
-
- 插件市场维护或访问限制:VSCode 插件市场有时候会进行维护或更新,此时可能无法访问。可以稍后再尝试安装插件,通常官方会通过社交媒体或 VSCode 官网通知用户维护进度。如果所在地区由于政策或网络限制无法直接访问 VSCode 插件市场,可以使用 VPN 或其他网络代理服务来绕过地理位置限制,但使用 VPN 时要确保遵守相关法律法规。
-
- 文件权限问题:在某些操作系统中,文件系统的权限设置可能阻止 VSCode 修改安装目录,包括安装新的插件。在类 Unix 系统中,需要适当调整文件夹的权限设置,以允许 VSCode 进行必要的写操作。在 Windows 系统中,有时需要以管理员身份运行 VSCode 才能成功安装插件。如果遇到插件安装失败的情况,尝试右键点击 VSCode 图标,选择 “以管理员身份运行”,然后再次安装插件。
6.3 编译报错
- 问题描述:在 VSCode 中编译 C/C++ 代码时,出现各种编译错误,如 “找不到头文件”“语法错误”“链接错误” 等。
- 解决方案:
-
- 找不到头文件:如果编译时提示 “找不到头文件”,例如 “#include ” 报错,可能是因为包含路径设置不正确。检查 “c_cpp_properties.json” 文件中的 “includePath” 设置,确保包含了系统头文件路径和项目所需的自定义头文件路径。在 Windows 系统中,系统头文件路径一般为 “D:\mingw64\include”(根据 MinGW-w64 的安装路径);在 Linux 系统中为 “/usr/include”;在 macOS 系统中为 “/usr/include” 等。如果项目中有自定义的头文件,将其所在目录也添加到 “includePath” 中,例如 “${workspaceFolder}/include”。另外,还要检查头文件的名称是否正确,是否存在拼写错误。
-
- 语法错误:如果提示语法错误,仔细检查代码中的语法,例如括号是否匹配、分号是否遗漏、关键字是否拼写正确等。VSCode 的语法高亮和错误提示功能可以帮助发现大部分语法错误,错误信息会在编辑器的下方显示,点击错误信息可以跳转到对应的代码行。对于一些复杂的语法错误,可以参考 C/C++ 的语法规范,或者在网上搜索相关的错误信息,查找解决方案。
-
- 链接错误:如果编译通过,但在链接阶段报错,例如提示 “undefined reference to...”,表示链接器找不到函数或变量的定义。这可能是因为没有正确链接相关的库文件。在 “tasks.json” 文件中,添加链接库的参数。例如,如果要链接数学库 “libm”,在 “args” 数组中添加 “-lm”。另外,确保库文件所在的目录在链接路径中,可以在 “tasks.json” 中添加 “-L/path/to/lib”(将 “/path/to/lib” 替换为实际的库文件目录)。如果是使用静态库,还需要在链接参数中指定静态库文件的名称,如 “-l/path/to/libm.a”。
七、总结
至此,我们已经全面且详细地完成了在 Windows、Linux 和 macOS 系统上搭建 VSCode C/C++ 开发环境的过程,从前期准备到编译器的安装与配置,再到 VSCode 关键文件的设置,以及常见问题的解决方法,每一步都为你进行了细致的讲解。搭建这个环境就像是建造一座大厦,每一个步骤都至关重要,只有地基打得牢固,大厦才能稳固耸立。
现在,你已经掌握了搭建 VSCode C/C++ 环境的技能,是时候开启你的 C/C++ 编程之旅了。你可以尝试编写一些简单的程序,比如经典的 “Hello World”,然后逐渐挑战更复杂的项目,在实践中不断加深对 C/C++ 语言的理解和运用。
在后续的学习中,我也会继续分享更多 C/C++ 开发的实用技巧和经验,包括代码优化、调试技巧、项目管理等方面的内容,让你在 C/C++ 开发的道路上越走越远,不断提升自己的编程能力。希望你能在 C/C++ 的代码世界中尽情探索,收获满满的知识和乐趣!
转载自CSDN-专业IT技术社区
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
原文链接:https://blog.csdn.net/fq1986614/article/details/146206371