赞
踩
本文面向的对象是初次接触搭建C语言开发环境的学生或编程爱好者,以及想脱离诸如VC++6.0等过时开发工具从而转用VScode的人群
本文内容较多,篇幅较长,可按照需要选择阅读,文中如有纰漏,欢迎斧正。
我郑重承诺下面会是一篇极为详细的教程:
目录
1.2.macOS环境下安装编译器(可选gcc/clang编译器):
2.(建议)VSCode IntelIiSence的包含路径设置
Q1:macOS配置gcc为什么要这么麻烦? 既然macOS gcc的安装和配置比clang麻烦,为什么要把gcc的配置方法也写出来,只说clang不就可以了吗?
这里我们可以直接去微软官网下载安装,建议在跳转下载页面右键单击“direct download link”复制链接到迅雷下载,会快很多。
直接选择自己系统对应的Stable版本即可,当然也可以试试Insiders公测版
在VScode的扩展界面里搜索并下载如下扩展:
1.C/C++ Extension Pack
(扩展包里内含有C/C++、C/C++ Themes、CMake Tools和CMake,也一起装了)
2.Chinese(Simplified) 中文汉化包
3.Code Runner(运行代码)
安装好Code Runner后要记得在它的拓展设置里勾选“Run In Terminal”
4.CodeLLDB(更优雅的Debug调试环境)(在 第三大节附录“CodeLLDB插件调试环境配置” 有教程)
5.indent-rainbow(可选,可以根据代码前缩进颜色看出代码层)
建议:可以在“文件”选项中勾选自动保存(macOS版本如图,在菜单栏;Windows版本的在窗口左上角)
MinGW的全称是:Minimalist GNU on Windows,其实也就是gcc(c/c++编译器)在Windows上的移植版本。
附:官方开源库地址,可以下载最新版本的MinGW:(示例:x86_64-12.2.0-release-win32-sjlj-rt_v10-rev0.7z)
下载MingW64压缩包并解压至合适的位置,然后在解压后的文件夹里打开bin文件夹按如图所示复制文件地址
然后转到系统设置->系统->系统信息->高级系统设置->环境变量->系统变量里 选中并编辑Path,然后新建一个项把刚才的地址给复制进去,点击保存就可以了(注意是要编辑系统变量里的Path而非用户变量的Path)
编辑系统变量里的Path而非用户变量的Path
使用“win+R”快捷键,输入cmd后回车(另:使用终端(terminal)也是可以的),在弹出的窗口中输入“gcc -v -E -x c++ -”命令检验gcc是否配置好,如果和下面的一样就说明OK了。
建议把“#include <...> search starts here:”以下的路径复制一下,后面在配置IntelliSense中的包含路径有用(参见“2.配置VSCode的IntelliSence的包含路径设置”)
这里借鉴一下前辈的方法,在终端(terminal)中用以下命令回车安装homebrew:
/bin/zsh -c "$(curl -fsSL https://gitee.com/cunkai/HomebrewCN/raw/master/Homebrew.sh)"
运行时会提示配置下载源和输入密码(输入密码的时候不会显示出来,输完直接回车),按照提示信息继续就好
等配置完homebrew后按照提示信息输入刷新终端或者手动重启终端,
然后在终端内输入以下命令回车安装编译器gcc:
brew install gcc
安装完成以后,再次运行上述命令,获取通过HomeBrew安装的gcc版本。
输入“vim ~/.zprofile”回车后按下i键进入编辑模式,按如图所示的方式复制并修改以下的文本来更改系统的配置信息(X代表你gcc的大版本,例如我的是12)。
- alias gcc='gcc-X'
- alias cc='gcc-X'
- alias g++='g++-X'
- alias c++='c++-X'
输入完毕后按esc退出编辑模式,然后输入英文的“:wq”保留更改并退出文件编辑
在terminal内输入“source ~/.zprofile”(Bash请修改命令为“source ~/.bash_profile“)并回车应用更改后,输入“gcc -v”以显示gcc的版本和安装位置
输入“gcc -v -E -x c++ -”命令检验gcc是否配置好并查看头文件路径,如果和下面的一样就说明OK了。
建议把“#include <...> search starts here:”下黄框内路径复制一下,后面在配置IntelliSense 配置中的包含路径有用(参见“2.配置VSCode的IntelliSence的包含路径设置”)。
首先在terminal内用“clang -v”或者“clang --version”(gcc -v也可以,具体会在文末解释)回车检查Mac是否带有clang
如果不是以上结果,直接在terminal里输入以下命令并回车,然后在弹出的窗口中确认安装clang。
Xcode-select --install
建议:在clang安装完成后,在终端里运行下列命令并复制框选路径,后面在配置IntelliSense 配置中的包含路径有用(参见“2.配置VSCode的IntelliSence的包含路径设置”)。
clang -v -E -x c++ -
在桌面上新建一个文件夹(不要用中文命名,切记!),然后在VScode中打开
在VScode打开的文件夹里新建一个.c文件,然后按照如图所示点开配置
注意新建的.c文件要在打开的文件夹内
然后在扩展设置里根据你自己的情况进行配置,完成后会自动生成一个带有c_cpp_properties.json文件的.vscode文件夹(C语音填选gcc或clang,C++填选g++或clang++)。
gcc编译器按照如图所示配置
clang直接如图所示设置,是不是很简单?
在刚刚的C语言文件编辑界面中如图所示操作:
在刚刚C语言文件里自己写一个简单的代码或者直接使用如下代码:
- #include<stdio.h>
- int main()
- {
- for (int i = 0; i < 4; i++)
- {
- printf("Hello,World!\n");
- }
- return 0;
- }
在某个函数的行前打一个断点,点击运行旁边的选项按钮,选择调试C/C++文件
按照各图下面的说明操作,会在.vscode文件夹里生成task.json和launch.json文件
此处根据你自己的编译器选择对应的调试配置,完成后会在.vscode文件夹里生成task.json文件
点击“创建 launch.json 文件”,在选择调试器时点选“C++(GDB/LLDB)”生成launch.json文件
注意:macOS版VScode自C/C++插件的1.9.7版本更新后,已经不提供补全launch.json文件的功能了(附录里也会提供各系统各编译器环境下的task.json和launch.json文档以供参考),当然也可以手动安装插件的指定版本使用。
现在你已经在电脑上配置好了开发C语言所需的基础开发环境了,预祝你在开发的道路上一路顺风!
如图所示操作:
就可以在VSCode的集成终端里进行输入调试了。
launch.json
- {
- // 使用 IntelliSense 了解相关属性。
- // 悬停以查看现有属性的描述。
- // 欲了解更多信息,请访问: https://go.microsoft.com/fwlink/?linkid=830387
- "version": "0.2.0",
- "configurations": [
- {
- "type": "lldb",
- "request": "launch",
- "name": "Debug",
- "program": "${workspaceFolder}/${fileBasenameNoExtension}",
- "args": [],
- "cwd": "${workspaceFolder}"
- }
- ]
- }

tasks.json
- {
- "tasks": [
- {
- "type": "cppbuild",
- "label": "C/C++: gcc.exe 生成活动文件",
- "command": "C:/mingw64/bin/gcc.exe", /*此处就放你复制到Path里面的路径+/gcc.exe*/
- "args": [
- "-fdiagnostics-color=always",
- "-g",
- "${file}",
- "-o",
- "${fileDirname}\\${fileBasenameNoExtension}.exe",
- ""
- ],
- "options": {
- "cwd": "C:/mingw64/bin" /*这里直接放你复制的路径就好*/
- },
- "problemMatcher": [
- "$gcc"
- ],
- "group": {
- "kind": "build",
- "isDefault": true
- },
- "detail": "调试器生成的任务。"
- }
- ],
- "version": "2.0.0"
- }

launch.json
- {
- // 使用 IntelliSense 了解相关属性。
- // 悬停以查看现有属性的描述。
- // 欲了解更多信息,请访问: https://go.microsoft.com/fwlink/?linkid=830387
- "version": "0.2.0",
- "configurations": [
- {
- "name": "gcc.exe - 生成和调试活动文件",
- "type": "cppdbg",
- "request": "launch",
- "args": [],
- "stopAtEntry": false,
- "externalConsole": true,
- "cwd": "c:/Users/swj/Desktop/s",
- "program": "${fileDirname}\\${fileBasenameNoExtension}.exe",
- "MIMode": "gdb",
- "miDebuggerPath": "C:\\mingw64\\bin\\gdb.exe",/*这里也是直接放你复制的路径,注意/要用\\替代*/
- "setupCommands": [
- {
- "description": "为 gdb 使用整齐打印",
- "text": "-enable-pretty-printing",
- "ignoreFailures": true
- }
- ]
- }
- ]
- }

tasks.json
- {
- "tasks": [
- {
- "type": "cppbuild",
- "label": "C/C++: gcc 生成活动文件",
- "command": "/opt/homebrew/Cellar/gcc/12.2.0/bin/gcc-12",
- "args": [
- "-fdiagnostics-color=always",
- "-g",
- "${file}",
- "-o",
- "${fileDirname}/${fileBasenameNoExtension}"
- ],
- "options": {
- "cwd": "${fileDirname}"
- },
- "problemMatcher": [
- "$gcc"
- ],
- "group": {
- "kind": "build",
- "isDefault": true
- },
- "detail": "调试器生成的任务。"
- }
- ],
- "version": "2.0.0"
- }

launch.json
- {
- // 使用 IntelliSense 了解相关属性。
- // 悬停以查看现有属性的描述。
- // 欲了解更多信息,请访问: https://go.microsoft.com/fwlink/?linkid=830387
- "version": "0.2.0",
- "configurations": [
- {
- "name": "gcc - 生成和调试活动文件",
- "type": "cppdbg",
- "request": "launch",
- "program": "${workspaceFolder}/a.out",
- "args": [],
- "cwd": "${workspaceFolder}",
- "environment": [],
- "externalConsole": true,
- "MIMode": "lldb",
- "preLaunchTask": "C/C++: gcc 生成调试文件"
- }
- ]
- }

tasks.json
- {
- "tasks": [
- {
- "type": "cppbuild",
- "label": "C/C++: clang 生成活动文件",
- "command": "/usr/bin/clang",
- "args": [
- "-fcolor-diagnostics",
- "-fansi-escape-codes",
- "-g",
- "${file}",
- "-o",
- "${fileDirname}/${fileBasenameNoExtension}"
- ],
- "options": {
- "cwd": "${fileDirname}"
- },
- "problemMatcher": [
- "$gcc"
- ],
- "group": {
- "kind": "build",
- "isDefault": true
- },
- "detail": "调试器生成的任务。"
- }
- ],
- "version": "2.0.0"
- }

launch.json
- {
- // 使用 IntelliSense 了解相关属性。
- // 悬停以查看现有属性的描述。
- // 欲了解更多信息,请访问: https://go.microsoft.com/fwlink/?linkid=830387
- "version": "0.2.0",
- "configurations": [
- {
- "name": "clang - 生成和调试活动文件",
- "type": "cppdbg",
- "request": "launch",
- "program": "${workspaceFolder}/a.out",
- "args": [],
- "stopAtEntry": false,
- "cwd": "${fileDirname}",
- "environment": [],
- "externalConsole": false,
- "MIMode": "lldb",
- "preLaunchTask": "C/C++: clang 生成调试文件"
- }
- ]
- }

答:其实一开始的OSX是默认使用gcc作为编译器的,但后面苹果自己也整出了一个编译器:Clang,而且由于版权问题自macOS10.12之后系统就不自带gcc编译器,默认使用clang作为c语言编译器。
但是,苹果在更换默认编译器后,为了照顾老用户对gcc的使用习惯,“鸡贼”的把有关gcc的命令行链接给了clang,所以如果你不修改并应用~/.zprofile(Bash请修改“~/.bash_profile“)直接在terminal里面输入“gcc -v”和“clang -v”回车,你都会看到clang的显示结果。
虽然clang是新一代且安装更方便的编译器,但Windows上现在都是使用的gcc进行的C代码编译。而且一般高校计算机系C语言的编译器选择都是gcc,如果编译器不同,可能执行的结果也会有所不同,所以才因此打算讲解的全面一点。
答:本人计算机系大一学生一枚,之前看M1芯片的Mac可以运行iOS应用就选择了M1的MacBook,但是在配置VSCode搭建C语言开发环境的碰到了不少坑,而且班里同学们用着不知道哪个年代的VC++6.0,想换一个VSCode写代码,所以就根据自己的经验详细总结出了这篇文章。希望能对看到并需要的人有所帮助。
本文于2022.10.10 20:55在知乎发布
于2023.3.1 20:47转载CSDN
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。