转:在macOS下使用Visual Studio Code进行C/C++开发
来源:互联网 发布:淘宝怎么打开神笔 编辑:程序博客网 时间:2024/06/08 14:06
原博客地址:https://stidio.github.io/2017/01/use_vscode_for_c_c++_development_in_macos/
在macOS下使用Visual Studio Code进行C/C++开发
平时工作做C/C++方面的开发更多还是在Windows下使用Visual Studio,几乎都是做跨平台开发,Windows上跑通后Linux上编译发布,基本上都没什么问题,如果的确需要调试,有VisualGDB的存在也很方便;但在macOS下使用过IDE性质的XCode,CLion,Qt Creator,也使用过轻量级的诸如TextMate, Sublime Text,但始终找不到Visual Studio的感觉,回想起来macOS下使用最多的C/C++开发环境居然是CodeRunner;直到最近这几天有空折腾了一下Vistual Studio Code,瞬间找到了初恋的感觉!
需求
粗略想了下,进行C/C++开发,我需要的功能大概有:
- 格式化
- 自动完成
- Lint
- 符号检索
- 方便的跳转和查看
- 可视化调试(别给我提GDB,你能苛求一个连VIM都讨厌的人使用GDB?)
而上面这些功能使用Visual Studio Code和必要的插件几乎可以达到Vistual Studio 80%的体验
打造
- 安装Visual Studio
- 安装cpptools插件,这个Micrsoft出品的插件几乎囊括了我前面说的所有功能,但他的自动完成是Fuzzy的,非常糟糕;另外他的Lint功能也进行只局限于文件包含;注:该插件安装完成后会自动安装必要的依赖更新.
- 安装C/C++ Clang插件,这个插件只有两个功能,自动完成和诊断Diagnostic(Lint),其使用Clang实时分析,什么模板嵌套都能分析,功能异常强大;
上面两个如果同时启用的话会发生冲突,并且[C/C++ Clang]插件默认不进行C++11分析,点击[Code]->[首选项]->[用户设置]进行如下配置:
"C_Cpp.autocomplete": "Disabled","clang.cxxflags": ["-std=c++11"]
注:仅仅需要上面两个插件就够了,高安装量的C++ Intellisense插件千万别装,它会和上述两个插件冲突,从而出现各种奇怪问题;
体验
- 打开一个包含有C/C++文件的目录;
使用[F1]或[⇧⌘P]打开命令模式,选择[C/Cpp: Edit Configurations]命令,其会在目录的.vscode配置目录下生成一个c_cpp_properties.json文件,修改Mac节点下的includePath变量添加C++11跳转支持:
"includePath": ["/usr/include", "/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/include/c++/v1"],
注:如果引入其他库,将库路径按以上方式附在后面即可
打开命令模式,选择[Tasks: Configure Task Runner]命令,其会在目录的.vscode配置目录下生成一个tasks.json文件,修改配置:
{ // See https://go.microsoft.com/fwlink/?LinkId=733558 // for the documentation about the tasks.json format "version": "0.1.0", "command": "clang++", "isShellCommand": true, "args": ["main.cpp", "-std=c++11", "-g"], "showOutput": "always"}
注:main.cpp是入口文件,你可以修改成你自己的,如果是有多个入口的测试项目,我一般定义为${file},只是必须选定文件启动;另外args中必须添加-g选项,否则调试无效;要支持C++11,必须添加-std=c++11选项;如果还有其他编译要求,将选项附加在后面即可(调试模式我经常使用–save-temps来查看编译中间文件);之后[⌘P]然后执行[task clang++],或者直接[⇧⌘B]就可自动编译.
- 打开命令模式,选择[Debug: Open launch.json]命令,其会在目录的.vscode配置目录下生成一个launch.json文件;修改program为:${workspaceRoot}/a.out;如果需要读取参数,修改args配置;我一般会习惯性的加上”preLaunchTask”: “clang++”配置,这样当源代码发生改变时,启动调试会自动编译;
- 之后的调试流程,基本上就和Vistual Studio一样了,附一张调试图:
参考资料
C/C++ for VS Code (Preview)
{
"window.zoomLevel": 3,
"clang.cxxflags": ["-std=c++11"],
"editor.quickSuggestions": {
"other": true,
"comments": true,
"strings": true,
},
"workbench.colorTheme": "One Dark Pro Vivid",
}
- 转:在macOS下使用Visual Studio Code进行C/C++开发
- 在macOS下使用Visual Studio Code进行C/C++开发
- 使用Visual Studio Code进行开发
- docker4dotnet #3 在macOS上使用Visual Studio Code和Docker开发asp.net core和mysql应用
- visual studio 2012进行C语言开发
- visual studio code c调试
- Visual Studio Code 构建C/C++开发环境
- 使用Visual Studio开发C程序
- Visual Studio Code进行Python开发
- visual studio 2012进行C语言开发[图文]
- visual studio 2012进行C语言开发[图文]
- visual studio 2012进行C语言开发[图文]
- 如何在Windows系统下使用vim进行c开发
- visual studio code写c语言是在include下有绿色的下划线提示not found
- Visual Studio Code C&&C++ 编译配置
- 在Win7下Visual Studio如何使用IIS进行调试
- Linux下使用Visual Studio Code
- 在 Visual Studio Code 中使用Git
- exception org.apache.jasper.JasperException: Unable to compile class for JSP
- sql优化方式学习总结
- golang有用的库及工具 之 zap.Logger包 使用
- 1025 电脑操作小技巧
- Qt 窗口置顶
- 转:在macOS下使用Visual Studio Code进行C/C++开发
- tcmalloc的工作原理
- 石头剪刀布生活大爆炸版
- 求三角形面积
- 从txt文件读取多边形点的坐标,计算任意多边形的面积
- 文章标题
- python内置数据类型:字符串
- 解决动态创建的Combobox出现绑定的DataSource丢失的问题
- 解救安卓异常——jar冲突,jar包重复