闲来无事,想在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,如图。
扫描二维码关注公众号,回复:
15689829 查看本文章
(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
,进入调试。
- 调试页面如图