Ubuntu下安装并配置VS Code编译C++的方法
<p><strong>ubuntu下安装并配置vs code编译c++</strong></p><p><strong>安装vs code</strong></p><div class="jb51code"><div><div class="syntaxhighlighterbash" id="highlighter_347557"><div class="toolbar">?</div><table border="0" cellpadding="0" cellspacing="0"><tbody><tr class="firstRow"><td class="gutter"><div class="line number1 index0 alt2">1</div><div class="line number2 index1 alt1">
2</div><div class="line number3 index2 alt2">
3</div><div class="line number4 index3 alt1">
4</div></td><td class="code"><div class="container"><div class="line number1 index0 alt2"><code class="bash functions">sudo</code> <code class="bash plain">add-apt-repository ppa:ubuntu-desktop</code><code class="bash plain">/ubuntu-make</code></div><div class="line number2 index1 alt1"><code class="bash functions">sudo</code> <code class="bash plain">apt-get update</code></div><div class="line number3 index2 alt2"><code class="bash functions">sudo</code> <code class="bash plain">apt-get </code><code class="bash functions">install</code> <code class="bash plain">ubuntu-</code><code class="bash functions">make</code></div><div class="line number4 index3 alt1"><code class="bash functions">sudo</code> <code class="bash plain">umake web visual-studio-code</code></div></div></td></tr></tbody></table></div></div></div><p>
然后按a直接默认同意就可以。</p><p><strong>安装插件</strong></p><p>
打开vs code后,按crtl + shift + p调出命令行,然后搜索c++,安装微软自己开发的那个。</p><p>
同样可以安装c++ intellisense插件,用于自动补全代码。</p><p><strong>配置launch.json和tasks.json</strong></p><p><strong>注意vs code只能打开源码所在的文件夹,而不是直接打开源码文件,否则下面将无法进行!</strong></p><p>
打开源码所在文件夹后,在该文件夹中打开源码。按f5键,选择c++,</p><p><img style="max-width:100%!important;height:auto!important;" title="Ubuntu下安装并配置VS Code编译C++的方法" alt="Ubuntu下安装并配置VS Code编译C++的方法" src="https://zhuji.jb51.net/uploads/img/202305/4d95a8d70b61752dc3efec1d759e42a3.jpg"/></p><p>
然后会自动生成launch.json文件,下面只需要修改两个地方</p><p>
将</p><div class="jb51code"><div><div class="syntaxhighlighterplain" id="highlighter_25648"><div class="toolbar">?</div><table border="0" cellpadding="0" cellspacing="0"><tbody><tr class="firstRow"><td class="gutter"><div class="line number1 index0 alt2">
1</div></td><td class="code"><div class="container"><div class="line number1 index0 alt2"><code class="plain plain">"program": "enter program name, for example \${workspaceroot}/a.out",</code></div></div></td></tr></tbody></table></div></div></div><p>
改为</p><div class="jb51code"><div><div class="syntaxhighlighterplain" id="highlighter_180958"><div class="toolbar">?</div><table border="0" cellpadding="0" cellspacing="0"><tbody><tr class="firstRow"><td class="gutter"><div class="line number1 index0 alt2">
1</div></td><td class="code"><div class="container"><div class="line number1 index0 alt2"><code class="plain plain">"program": "${workspaceroot}/a.out",</code></div></div></td></tr></tbody></table></div></div></div><p>
将</p><div class="jb51code"><div><div class="syntaxhighlighterplain" id="highlighter_445511"><div class="toolbar">?</div><table border="0" cellpadding="0" cellspacing="0"><tbody><tr class="firstRow"><td class="gutter"><div class="line number1 index0 alt2">
1</div></td><td class="code"><div class="container"><div class="line number1 index0 alt2"><code class="plain plain">"cwd": "\${workspaceroot}",</code></div></div></td></tr></tbody></table></div></div></div><p>
改为</p><div class="jb51code"><div><div class="syntaxhighlighterplain" id="highlighter_463253"><div class="toolbar">?</div><table border="0" cellpadding="0" cellspacing="0"><tbody><tr class="firstRow"><td class="gutter"><div class="line number1 index0 alt2">
1</div></td><td class="code"><div class="container"><div class="line number1 index0 alt2"><code class="plain plain">"cwd": "${workspaceroot}",</code></div></div></td></tr></tbody></table></div></div></div><p>
完整的launch.json</p><div class="jb51code"><div><div class="syntaxhighlighterjs" id="highlighter_378034"><div class="toolbar">?</div><table border="0" cellpadding="0" cellspacing="0"><tbody><tr class="firstRow"><td class="gutter"><div class="line number1 index0 alt2">
1</div><div class="line number2 index1 alt1">
2</div><div class="line number3 index2 alt2">
3</div><div class="line number4 index3 alt1">
4</div><div class="line number5 index4 alt2">
5</div><div class="line number6 index5 alt1">
6</div><div class="line number7 index6 alt2">
7</div><div class="line number8 index7 alt1">
8</div><div class="line number9 index8 alt2">
9</div><div class="line number10 index9 alt1">
10</div><div class="line number11 index10 alt2">
11</div><div class="line number12 index11 alt1">
12</div><div class="line number13 index12 alt2">
13</div><div class="line number14 index13 alt1">
14</div><div class="line number15 index14 alt2">
15</div><div class="line number16 index15 alt1">
16</div><div class="line number17 index16 alt2">
17</div><div class="line number18 index17 alt1">
18</div><div class="line number19 index18 alt2">
19</div><div class="line number20 index19 alt1">
20</div><div class="line number21 index20 alt2">
21</div><div class="line number22 index21 alt1">
22</div><div class="line number23 index22 alt2">
23</div><div class="line number24 index23 alt1">
24</div></td><td class="code"><div class="container"><div class="line number1 index0 alt2"><code class="js plain">{</code></div><div class="line number2 index1 alt1"><code class="js spaces"> </code><code class="js string">"version"</code><code class="js plain">: </code><code class="js string">"0.2.0"</code><code class="js plain">,</code></div><div class="line number3 index2 alt2"><code class="js spaces"> </code><code class="js string">"configurations"</code><code class="js plain">: [</code></div><div class="line number4 index3 alt1"><code class="js spaces"> </code><code class="js plain">{</code></div><div class="line number5 index4 alt2"><code class="js spaces"> </code><code class="js string">"name"</code><code class="js plain">: </code><code class="js string">"(gdb) launch"</code><code class="js plain">,</code></div><div class="line number6 index5 alt1"><code class="js spaces"> </code><code class="js string">"type"</code><code class="js plain">: </code><code class="js string">"cppdbg"</code><code class="js plain">,</code></div><div class="line number7 index6 alt2"><code class="js spaces"> </code><code class="js string">"request"</code><code class="js plain">: </code><code class="js string">"launch"</code><code class="js plain">,</code></div><div class="line number8 index7 alt1"><code class="js spaces"> </code><code class="js string">"program"</code><code class="js plain">: </code><code class="js string">"${workspaceroot}/a.out"</code><code class="js plain">,</code></div><div class="line number9 index8 alt2"><code class="js spaces"> </code><code class="js string">"args"</code><code class="js plain">: [],</code></div><div class="line number10 index9 alt1"><code class="js spaces"> </code><code class="js string">"stopatentry"</code><code class="js plain">: </code><code class="js keyword">false</code><code class="js plain">,</code></div><div class="line number11 index10 alt2"><code class="js spaces"> </code><code class="js string">"cwd"</code><code class="js plain">: </code><code class="js string">"${workspaceroot}"</code><code class="js plain">,</code></div><div class="line number12 index11 alt1"><code class="js spaces"> </code><code class="js string">"environment"</code><code class="js plain">: [],</code></div><div class="line number13 index12 alt2"><code class="js spaces"> </code><code class="js string">"externalconsole"</code><code class="js plain">: </code><code class="js keyword">true</code><code class="js plain">,</code></div><div class="line number14 index13 alt1"><code class="js spaces"> </code><code class="js string">"mimode"</code><code class="js plain">: </code><code class="js string">"gdb"</code><code class="js plain">,</code></div><div class="line number15 index14 alt2"><code class="js spaces"> </code><code class="js string">"setupcommands"</code><code class="js plain">: [</code></div><div class="line number16 index15 alt1"><code class="js spaces"> </code><code class="js plain">{</code></div><div class="line number17 index16 alt2"><code class="js spaces"> </code><code class="js string">"description"</code><code class="js plain">: </code><code class="js string">"enable pretty-printing for gdb"</code><code class="js plain">,</code></div><div class="line number18 index17 alt1"><code class="js spaces"> </code><code class="js string">"text"</code><code class="js plain">: </code><code class="js string">"-enable-pretty-printing"</code><code class="js plain">,</code></div><div class="line number19 index18 alt2"><code class="js spaces"> </code><code class="js string">"ignorefailures"</code><code class="js plain">: </code><code class="js keyword">true</code></div><div class="line number20 index19 alt1"><code class="js spaces"> </code><code class="js plain">}</code></div><div class="line number21 index20 alt2"><code class="js spaces"> </code><code class="js plain">]</code></div><div class="line number22 index21 alt1"><code class="js spaces"> </code><code class="js plain">}</code></div><div class="line number23 index22 alt2"><code class="js spaces"> </code><code class="js plain">]</code></div><div class="line number24 index23 alt1"><code class="js plain">}</code></div></div></td></tr></tbody></table></div></div></div><p>
然后,调出命令行,输入task runner,选择others</p><p><img style="max-width:100%!important;height:auto!important;" title="Ubuntu下安装并配置VS Code编译C++的方法" alt="Ubuntu下安装并配置VS Code编译C++的方法" src="https://zhuji.jb51.net/uploads/img/202305/d923eb823ca49a07ed945e3ff2cf7732.jpg"/></p><p>
此时将自动生成tasks.json</p><p>
将其中的</p><div class="jb51code"><div><div class="syntaxhighlighterplain" id="highlighter_462588"><div class="toolbar">?</div><table border="0" cellpadding="0" cellspacing="0"><tbody><tr class="firstRow"><td class="gutter"><div class="line number1 index0 alt2">
1</div></td><td class="code"><div class="container"><div class="line number1 index0 alt2"><code class="plain plain">"command": "echo",</code></div></div></td></tr></tbody></table></div></div></div><p>
改为</p><div class="jb51code"><div><div class="syntaxhighlighterplain" id="highlighter_957787"><div class="toolbar">?</div><table border="0" cellpadding="0" cellspacing="0"><tbody><tr class="firstRow"><td class="gutter"><div class="line number1 index0 alt2">
1</div></td><td class="code"><div class="container"><div class="line number1 index0 alt2"><code class="plain plain">"command": "g++",</code></div></div></td></tr></tbody></table></div></div></div><p>
将</p><div class="jb51code"><div><div class="syntaxhighlighterplain" id="highlighter_287832"><div class="toolbar">?</div><table border="0" cellpadding="0" cellspacing="0"><tbody><tr class="firstRow"><td class="gutter"><div class="line number1 index0 alt2">
1</div></td><td class="code"><div class="container"><div class="line number1 index0 alt2"><code class="plain plain">"args": ["hello world"],</code></div></div></td></tr></tbody></table></div></div></div><p>
改为</p><div class="jb51code"><div><div class="syntaxhighlighterplain" id="highlighter_618384"><div class="toolbar">?</div><table border="0" cellpadding="0" cellspacing="0"><tbody><tr class="firstRow"><td class="gutter"><div class="line number1 index0 alt2">
1</div></td><td class="code"><div class="container"><div class="line number1 index0 alt2"><code class="plain plain">"args": ["-g","${workspaceroot}/main.cpp"],</code></div></div></td></tr></tbody></table></div></div></div><p><strong>注意这里的main.cpp要和你当前路径的源码名称一致。</strong></p><p>
完整的tasks.json</p><div class="jb51code"><div><div class="syntaxhighlighterjs" id="highlighter_593506"><div class="toolbar">?</div><table border="0" cellpadding="0" cellspacing="0"><tbody><tr class="firstRow"><td class="gutter"><div class="line number1 index0 alt2">
1</div><div class="line number2 index1 alt1">
2</div><div class="line number3 index2 alt2">
3</div><div class="line number4 index3 alt1">
4</div><div class="line number5 index4 alt2">
5</div><div class="line number6 index5 alt1">
6</div><div class="line number7 index6 alt2">
7</div><div class="line number8 index7 alt1">
8</div><div class="line number9 index8 alt2">
9</div></td><td class="code"><div class="container"><div class="line number1 index0 alt2"><code class="js plain">{</code></div><div class="line number2 index1 alt1"><code class="js spaces"> </code><code class="js comments">// see https://go.microsoft.com/fwlink/?linkid=733558</code></div><div class="line number3 index2 alt2"><code class="js spaces"> </code><code class="js comments">// for the documentation about the tasks.json format</code></div><div class="line number4 index3 alt1"><code class="js spaces"> </code><code class="js string">"version"</code><code class="js plain">: </code><code class="js string">"0.1.0"</code><code class="js plain">,</code></div><div class="line number5 index4 alt2"><code class="js spaces"> </code><code class="js string">"command"</code><code class="js plain">: </code><code class="js string">"g++"</code><code class="js plain">,</code></div><div class="line number6 index5 alt1"><code class="js spaces"> </code><code class="js string">"isshellcommand"</code><code class="js plain">: </code><code class="js keyword">true</code><code class="js plain">,</code></div><div class="line number7 index6 alt2"><code class="js spaces"> </code><code class="js string">"args"</code><code class="js plain">: [</code><code class="js string">"-g"</code><code class="js plain">,</code><code class="js string">"${workspaceroot}/main.cpp"</code><code class="js plain">],</code></div><div class="line number8 index7 alt1"><code class="js spaces"> </code><code class="js string">"showoutput"</code><code class="js plain">: </code><code class="js string">"always"</code></div><div class="line number9 index8 alt2"><code class="js plain">}</code></div></div></td></tr></tbody></table></div></div></div><p>
运行测试</p><p>
随便编写个代码</p><div class="jb51code"><div><div class="syntaxhighlightercpp" id="highlighter_293658"><div class="toolbar">?</div><table border="0" cellpadding="0" cellspacing="0"><tbody><tr class="firstRow"><td class="gutter"><div class="line number1 index0 alt2">
1</div><div class="line number2 index1 alt1">
2</div><div class="line number3 index2 alt2">
3</div><div class="line number4 index3 alt1">
4</div><div class="line number5 index4 alt2">
5</div><div class="line number6 index5 alt1">
6</div><div class="line number7 index6 alt2">
7</div><div class="line number8 index7 alt1">
8</div></td><td class="code"><div class="container"><div class="line number1 index0 alt2"><code class="cpp preprocessor">#include<iostream></iostream></code></div><div class="line number2 index1 alt1"><code class="cpp keyword bold">using</code> <code class="cpp keyword bold">namespace</code> <code class="cpp plain">std;</code></div><div class="line number3 index2 alt2">
</div><div class="line number4 index3 alt1"><code class="cpp color1 bold">int</code> <code class="cpp plain">main()</code></div><div class="line number5 index4 alt2"><code class="cpp plain">{</code></div><div class="line number6 index5 alt1"><code class="cpp spaces"> </code><code class="cpp plain">cout<<</code><code class="cpp string">"hello vs code"</code><code class="cpp plain"><<endl;</code></div><div class="line number7 index6 alt2"><code class="cpp spaces"> </code><code class="cpp keyword bold">return</code> <code class="cpp plain">0;</code></div><div class="line number8 index7 alt1"><code class="cpp plain">}</code></div></div></td></tr></tbody></table></div></div></div><p>
按crtl + shift + b构建,按f5运行,发现终端一闪而过,什么都没有输出。于是考虑windows下的办法。</p><div class="jb51code"><div><div class="syntaxhighlightercpp" id="highlighter_569551"><div class="toolbar">?</div><table border="0" cellpadding="0" cellspacing="0"><tbody><tr class="firstRow"><td class="gutter"><div class="line number1 index0 alt2">
1</div><div class="line number2 index1 alt1">
2</div><div class="line number3 index2 alt2">
3</div><div class="line number4 index3 alt1">
4</div><div class="line number5 index4 alt2">
5</div><div class="line number6 index5 alt1">
6</div><div class="line number7 index6 alt2">
7</div><div class="line number8 index7 alt1">
8</div><div class="line number9 index8 alt2">
9</div><div class="line number10 index9 alt1">
10</div></td><td class="code"><div class="container"><div class="line number1 index0 alt2"><code class="cpp preprocessor">#include<iostream></iostream></code></div><div class="line number2 index1 alt1"><code class="cpp preprocessor">#include<stdlib.h></stdlib.h></code></div><div class="line number3 index2 alt2"><code class="cpp keyword bold">using</code> <code class="cpp keyword bold">namespace</code> <code class="cpp plain">std;</code></div><div class="line number4 index3 alt1">
</div><div class="line number5 index4 alt2"><code class="cpp color1 bold">int</code> <code class="cpp plain">main()</code></div><div class="line number6 index5 alt1"><code class="cpp plain">{</code></div><div class="line number7 index6 alt2"><code class="cpp spaces"> </code><code class="cpp plain">cout<<</code><code class="cpp string">"hello vs code"</code><code class="cpp plain"><<endl;</code></div><div class="line number8 index7 alt1"><code class="cpp spaces"> </code><code class="cpp functions bold">system</code><code class="cpp plain">(</code><code class="cpp string">"pause"</code><code class="cpp plain">);</code></div><div class="line number9 index8 alt2"><code class="cpp spaces"> </code><code class="cpp keyword bold">return</code> <code class="cpp plain">0;</code></div><div class="line number10 index9 alt1"><code class="cpp plain">}</code></div></div></td></tr></tbody></table></div></div></div><p>
同样并没有卵用。那就换一种方式。</p><div class="jb51code"><div><div class="syntaxhighlightercpp" id="highlighter_984188"><div class="toolbar">?</div><table border="0" cellpadding="0" cellspacing="0"><tbody><tr class="firstRow"><td class="gutter"><div class="line number1 index0 alt2">
1</div><div class="line number2 index1 alt1">
2</div><div class="line number3 index2 alt2">
3</div><div class="line number4 index3 alt1">
4</div><div class="line number5 index4 alt2">
5</div><div class="line number6 index5 alt1">
6</div><div class="line number7 index6 alt2">
7</div><div class="line number8 index7 alt1">
8</div><div class="line number9 index8 alt2">
9</div><div class="line number10 index9 alt1">
10</div></td><td class="code"><div class="container"><div class="line number1 index0 alt2"><code class="cpp preprocessor">#include<iostream></iostream></code></div><div class="line number2 index1 alt1"><code class="cpp preprocessor">#include<stdio.h></stdio.h></code></div><div class="line number3 index2 alt2"><code class="cpp keyword bold">using</code> <code class="cpp keyword bold">namespace</code> <code class="cpp plain">std;</code></div><div class="line number4 index3 alt1">
</div><div class="line number5 index4 alt2"><code class="cpp color1 bold">int</code> <code class="cpp plain">main()</code></div><div class="line number6 index5 alt1"><code class="cpp plain">{</code></div><div class="line number7 index6 alt2"><code class="cpp spaces"> </code><code class="cpp plain">cout<<</code><code class="cpp string">"hello vs code"</code><code class="cpp plain"><<endl;</code></div><div class="line number8 index7 alt1"><code class="cpp spaces"> </code><code class="cpp functions bold">getchar</code><code class="cpp plain">();</code></div><div class="line number9 index8 alt2"><code class="cpp spaces"> </code><code class="cpp keyword bold">return</code> <code class="cpp plain">0;</code></div><div class="line number10 index9 alt1"><code class="cpp plain">}</code></div></div></td></tr></tbody></table></div></div></div><p>
按crtl + shift + b构建,按f5运行,程序完美输出。有图为证,哈哈</p><p><img style="max-width:100%!important;height:auto!important;" title="Ubuntu下安装并配置VS Code编译C++的方法" alt="Ubuntu下安装并配置VS Code编译C++的方法" src="https://zhuji.jb51.net/uploads/img/202305/612f24f7a4fa3f9787afca61bf9090ba.jpg"/></p><p>
后记:</p><p>
期间在终端里执行了以下操作</p><div class="jb51code"><div><div class="syntaxhighlighterbash" id="highlighter_944988"><div class="toolbar">?</div><table border="0" cellpadding="0" cellspacing="0"><tbody><tr class="firstRow"><td class="gutter"><div class="line number1 index0 alt2">
1</div></td><td class="code"><div class="container"><div class="line number1 index0 alt2"><code class="bash functions">sudo</code> <code class="bash plain">apt-get </code><code class="bash functions">install</code> <code class="bash plain">clang</code></div></div></td></tr></tbody></table></div></div></div><p>
如果提示clang有错可以运行该命令,安装clang。</p><p>
那么问题来了,是不是换个文件夹每次写个代码都得配置lauch.json和task.json文件呢?或者将.vscode文件夹复制到当前文件夹下?这样岂不是很麻烦,细思极恐</p><p>
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。</p><p>
原文链接:http://blog.csdn.net/qq_22186119/article/details/73618062</p>
頁:
[1]