闲来无事,想在mac中写写C/C++程序,打开应用商店,准备下个xcode玩玩,结果小30G的空间占用直接劝退。因为一直使用vscode开发,便萌生了使用插件来运行C/C++程序的想法,也就有了这篇文章。
因为使用场景的不同,为大家提供了不使用调试功能和使用调试功能两种方案。如果你只是简单的跑跑C/C++程序,可以考虑第一种方案。
一、不使用调试功能
- 打开vscode,点击扩展,输入C++,选择插件 C/C++ Compile Run安装。


- 新建文件夹cTest,文件夹下添加文件a.c。

a.c中输入以下代码并保存。
<span style="color:#000000"><span style="background-color:#fefef2"><code class="language-c"><span style="color:#2b91af">#<span style="color:#0000ff">include</span> <span style="color:#3388aa"><stdio.h></span></span>
<span style="color:#a31515">int</span> <span style="color:#a31515">main</span> (){
<span style="color:#0000ff">printf</span>(<span style="color:#a31515">"HelloWorld"</span>);
}
</code></span></span>
- 确保当前窗口为a.c,点击cmd+r运行程序。

各平台运行指令如下

(1) 可以看到文件夹下多了一个可执行文件a,如图。

(2) 查看控制台输出信息,运行成功。

二、使用调试功能
程序运行
-
打开vscode,点击扩展,输入C++,选择插件 C/C++安装。


-
新建文件夹cTest,文件夹下添加文件a.c。

(1)a.c中输入以下代码并保存。
<span style="color:#000000"><span style="background-color:#fefef2"><code class="language-c"><span style="color:#2b91af">#<span style="color:#0000ff">include</span> <span style="color:#3388aa"><stdio.h></span></span>
<span style="color:#a31515">int</span> <span style="color:#a31515">main</span> (){
<span style="color:#0000ff">for</span> (<span style="color:#a31515">int</span> i = <span style="color:#880000">0</span>; i < <span style="color:#880000">10</span>; i++)
{
<span style="color:#0000ff">if</span> (i == <span style="color:#880000">8</span>) {
<span style="color:#0000ff">printf</span>(<span style="color:#a31515">"Hello World!"</span>);
}
}
<span style="color:#0000ff">return</span> <span style="color:#880000">0</span>;
}
</code></span></span>
(2)检查你的mac中是否安装了clang。
<span style="color:#000000"><span style="background-color:#fefef2"><code class="language-shell">clang --version
</code></span></span>
已安装,返回信息如下

未安装,安装clang
<span style="color:#000000"><span style="background-color:#fefef2"><code class="language-shell">xcode-select --install
</code></span></span>
(3)点击 cmd + p,输入>Configure Default Build Task。或cmd+⇧+p,输入Configure Default Build Task。

(4)选择C/C++ clang++ build active file进入tasks.json文件。图中是汉化后显示。

(5)覆盖tasks.json文件并保存。
<span style="color:#000000"><span style="background-color:#fefef2"><code class="language-json">{
<span style="color:#008000">// See https://go.microsoft.com/fwlink/?LinkId=733558</span>
<span style="color:#008000">// for the documentation about the tasks.json format</span>
<span style="color:#ff0000">"version"</span>: <span style="color:#a31515">"2.0.0"</span>,
<span style="color:#ff0000">"tasks"</span>: [
{
<span style="color:#ff0000">"type"</span>: <span style="color:#a31515">"shell"</span>,
<span style="color:#ff0000">"label"</span>: <span style="color:#a31515">"clang++ build active file"</span>,
<span style="color:#ff0000">"command"</span>: <span style="color:#a31515">"/usr/bin/clang++"</span>,
<span style="color:#ff0000">"args"</span>: [
<span style="color:#a31515">"-std=c++17"</span>,
<span style="color:#a31515">"-stdlib=libc++"</span>,
<span style="color:#a31515">"-g"</span>,
<span style="color:#a31515">"${file}"</span>,
<span style="color:#a31515">"-o"</span>,
<span style="color:#a31515">"${fileDirname}/${fileBasenameNoExtension}"</span>
],
<span style="color:#ff0000">"options"</span>: {
<span style="color:#ff0000">"cwd"</span>: <span style="color:#a31515">"${workspaceFolder}"</span>
},
<span style="color:#ff0000">"problemMatcher"</span>: [
<span style="color:#a31515">"$gcc"</span>
],
<span style="color:#ff0000">"group"</span>: <span style="color:#a31515">"build"</span>
},
{
<span style="color:#ff0000">"type"</span>: <span style="color:#a31515">"cppbuild"</span>,
<span style="color:#ff0000">"label"</span>: <span style="color:#a31515">"C/C++: clang 生成活动文件"</span>,
<span style="color:#ff0000">"command"</span>: <span style="color:#a31515">"/usr/bin/clang"</span>,
<span style="color:#ff0000">"args"</span>: [
<span style="color:#a31515">"-fdiagnostics-color=always"</span>,
<span style="color:#a31515">"-g"</span>,
<span style="color:#a31515">"${file}"</span>,
<span style="color:#a31515">"-o"</span>,
<span style="color:#a31515">"${fileDirname}/${fileBasenameNoExtension}"</span>
],
<span style="color:#ff0000">"options"</span>: {
<span style="color:#ff0000">"cwd"</span>: <span style="color:#a31515">"${fileDirname}"</span>
},
<span style="color:#ff0000">"problemMatcher"</span>: [
<span style="color:#a31515">"$gcc"</span>
],
<span style="color:#ff0000">"group"</span>: {
<span style="color:#ff0000">"kind"</span>: <span style="color:#a31515">"build"</span>,
<span style="color:#ff0000">"isDefault"</span>: <span style="color:#0000ff">true</span>
},
<span style="color:#ff0000">"detail"</span>: <span style="color:#a31515">"编译器: /usr/bin/clang"</span>
}
]
}
</code></span></span>
- 运行程序
(1)回到a.c窗口,点击⇧⌘B运行程序。
(2)查看目录结构,发现多了一个a文件和一个a.DYSM文件夹。
a文件:编译后的可执行文件。
a.DYSM文件夹:调试文件。

(3)命令行进入cTest路径下,输入./a 运行程序。

程序调试
- 打断点,在代码所在行左侧点击一下即可。

- 点击
cmd + p,输入>Start Debugging,进入调试。

- 调试页面如图


本文介绍了在Mac上如何利用VSCode的C/C++插件进行程序运行和调试,包括不使用调试功能的简单运行步骤,以及配置调试功能的详细过程,涉及任务配置和断点设置。



710

被折叠的 条评论
为什么被折叠?



