网站开发洽谈客户话术,wordpress告白墙,天元建设集团有限公司邮编,西安造价信息网官网前提
安装 Visual Studio CodeVSCode 中安装 C/C扩展确保 Clang 已经安装#xff08;在终端中输入命令#xff1a;clang --version 来确认是否安装#xff09;未安装#xff0c;在命令行执行xcode-select --install 命令#xff0c;会自行安装#xff0c;安装文件有点大…前提
安装 Visual Studio CodeVSCode 中安装 C/C扩展确保 Clang 已经安装在终端中输入命令clang --version 来确认是否安装未安装在命令行执行xcode-select --install 命令会自行安装安装文件有点大
创建你的第一个 HelloWorld 程序 创建工作区WorkSpace 打开 VSCode 创建一个 project 文件夹。
现在project 就是我们的工作区WorkSpace了。当我们继续做完本教程的配置这个工作区中将出现一个子文件夹.vscode包含三个文件。 ● tasks.json编译选项设置
创建 HelloWorld 的源代码文件 在 project 文件夹下创建一个 hello.cpp 文件
在 hello.cpp中粘贴以下内容
#include iostreamusing namespace std;int main(){cout Hello World endl;
} CommandS⌘S保存该文件
运行 HelloWorldcompile and run 注意C扩展是使用机器上已安装的 C编译器来生成程序所以在运行/调试 hello.cpp 前请确保你已经符合了文章开头的前提安装好了 C编译器。
打开 hello.cpp这将它将成为 active file可以被用于生成和调试 点击图中右上角的按钮选择 Run C/C File
在跳出的选项中选择C/C: clang build and debug active file。
只有在第一次运行 hello.cpp 时才需要做这个选择。选择后.vscode 文件夹中出现了一个新文件tasks.json我们选择的编译器配置将作为默认设置。 编译成功后程序的输出将显示在下方的 DEBUG CONSOLE
至此我们已经成功地运行了 VS Code 上的第一个 C程序
几大主流 C 编译器ICC / GCC / Clang / VC
gcc/g 和 clang/clang 都是 Linux 下常用的 C/C 编译器。gcc 是 GNU 亲儿子Ubuntu 等常用发行版标配。clang 是后起之秀配合 llvm以优秀的前端闻名于世现在已经是 MacXCode 的默认编译器微软等大公司都在往上靠前景一片光明。知乎上对几个主流编译器的评价
在标准支持方面clang g vc icc。从实际使用来看非常取决于平台。比如win上vc最好osx上clang最好等。其他特点还有icc编译出来的东西在intel cpu上快。
clang/g需要注意的是他们的编译器对标准支持很好但库的支持严重不行。以至于如果你要C11/C14还是会打折扣的。另外clang在win上简直是没有见过更屎的。
对于vc来说编译速度这几代在一直提高内存占用从vc12开始有明显改进最明显的是Variadic template。还有内置的代码静态分析在实际中很有用。vc14的静态分析不在每次载入一个ie对以前每分析一个.cpp就载入一次ie速度快了相当多。
对我自己而言优先级是clanggmsvc。
注GNU是一个操作系统其内容软件完全以GPL方式发布。这个操作系统是GNU计划的主要目标名称来自GNUs Not Unix!的递归缩写因为GNU的设计类似Unix但它不包含具著作权的Unix代码。GNU的创始人理查德·马修·斯托曼将GNU视为“达成社会目的技术方法”。
修改 tasks.json
修改了文件组织形式后存储了编译配置的 tasks.json 也需要做对应修改。 第一次编译运行 hello.cpp 时我的机器上生成的 tasks.json 如下
{tasks: [{type: cppbuild,label: C/C: clang build active file,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: Task generated by Debugger.}],version: 2.0.0
}我们做如下两个修改
工程中往往需要一次性编译选定路径下的所有 cpp 文件。对应的把args中的:${file}改为${fileDirname}/*.cpp 我们希望把编译出的文件统一放置在 target 文件夹下。对应的把args中的${fileDirname}/${fileBasenameNoExtension}改为${workspaceFolder}/target/${fileBasenameNoExtension}
修改工程文件结构
增加三个子文件夹 include、src、target并把 hello.cpp 移动到 src 目录下。 然后我们做下测试看看修改后的工作区可否正常编译运行 hello.cpp
验证配置的正确性
在 include 中创建 print.h粘贴如下内容
#include iostream
#include vector
#include string
using namespace std;void printMessage(vectorstring msg);在 src 中创建 print.cpp粘贴如下内容
#include ../include/print.hvoid printMessage(vectorstring msg)
{for (int i 0; i msg.size(); i ){cout msg[i] ;}
}修改 src 下的 hello.cpp粘贴如下内容
#include ../include/print.hint main(){vectorstring msg;msg.push_back(Hello); msg.push_back(World);printMessage(msg);
}在 hello.cpp 中点击右上角的 run 按钮可以看到也成功运行了这说明我们实现了一次性编译多个 cpp 文件而且目标文件生成到了 target 下。 cin命令无法输入
解决方法 有多种解决方法这里选择我认为最易于进行的方法
Step1下载相关插件这一步简单带过
安装CodeLLDB的扩展插件。 Step2生成可执行文件
直接点击vscode右上角的运行按钮。 在命令行就可以输入了。
debug调试仍然不行需要修改配置
调试修改launch.json文件 可以看到在当前目录下多了.vscode文件夹并且自动创建了launch.json文件。这个时候直接进行调试会报错/仍然无法处理输入问题 这里我们需要修改两个地方
1、使用集成终端来运行和调试程序增加 “terminal”: “integrated”, 如果type不是就改为lldb例type:lldb
2、运行当前文件所在目录下的同名可执行文件修改program属性为“${workspaceFolder}/helloworld” 网上${fileBasenameNoExtension}是不行的直接报错
至此修改完成。
先运行Run Code,然后运行《运行调试c/c文件》再调试就可以输入了。不能直接点击《运行调试c/c文件》直接点击依然没有输入的地方。 codeLLdb插件安装不了的解决方法
下载codeLLdb
codeLLdb下载地址 打开vscode后选择 扩展-视图和更多操作-从VSIX安装
选择下载的插件文件