热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

C++(0)mac使用VScode进行C++编译、运行、调试

mac使用VScode进行C开发1.查看编译器情况2.安装插件CC,CCClangCommandAdapte3.新建一个Cproject3.1.本地新建文件夹3.2.


mac 使用VScode 进行C++开发

  • 1.查看编译器情况
  • 2.安装插件C/C++,C/C++ Clang Command Adapte
  • 3.新建一个C++ project
    • 3.1.本地新建文件夹
    • 3.2.新建mian.cpp文件
    • 3.3.编写hello word demo
  • 4.代码编译,运行,调试
    • 4.1 命令行编译运行
    • 4.2 runcode 插件编译运行
    • 4.3 配置文件编译运行调试
      • 4.3.1编译调试文件生成
      • 4.3.2 文件内容
      • 4.3.3 编译运行
      • 4.4.4 调试
  • 5.Warning: Debuggee TargetArchitecture not detected, assuming x86_64

要运行C++程序,需要 代码编辑器 来编写C++源代码,需要 编译器 来编译源代码生成可执行文件。

C++的编译流程包括:预处理-编译-汇编-链接。

在不同的操作系统下(mac ,windows, Ubuntu),C++的编译流程都是一致的,只是支持流程的编译工具不同。

在mac 环境下,可使用Vscode来编辑C++源代码,使用g++/clang++来编译源代码。

g++ 是 GNU 亲儿子,Ubuntu 等常用发行版标配。
clang++ 是后起之秀,配合 llvm,以优秀的前端闻名于世,现在已经是 Mac(XCode) 的默认编译器。


1.查看编译器情况


g++ --version
clang++ --version


输出


(base) chenyingying@chenyingyingdeMacBook-Air ~ % g++ --version
Configured with: --prefix=/Library/Developer/CommandLineTools/usr --with-gxx-include-dir=/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/c++/4.2.1
Apple clang version 11.0.3 (clang-1103.0.32.62)
Target: x86_64-apple-darwin19.6.0
Thread model: posix
InstalledDir: /Library/Developer/CommandLineTools/usr/bin



(base) chenyingying@chenyingyingdeMacBook-Air ~ % clang++ --version
Apple clang version 11.0.3 (clang-1103.0.32.62)
Target: x86_64-apple-darwin19.6.0
Thread model: posix
InstalledDir: /Library/Developer/CommandLineTools/usr/bin
(base) chenyingying@chenyingyingdeMacBook-Air ~ %


(默认安装?没说没装怎么办呀)


2.安装插件C/C++,C/C++ Clang Command Adapte

到VSCode去安装C/C++,C/C++ Clang Command Adapte两款插件,以获得C++语法高亮、错误检查和调试等功能。
在这里插入图片描述


3.新建一个C++ project


3.1.本地新建文件夹


3.2.新建mian.cpp文件

1.在VScode中打开该文件夹
在这里插入图片描述
2.添加一个新的文件
在这里插入图片描述
3.在文件中编辑内容后,右键文件名保存文件为main.cpp文件(文件名可以自定义xxx.cpp)

在这里插入图片描述

在这里插入图片描述


3.3.编写hello word demo

#include
using namespace std;
int main(){cout << "hello world" << endl;return 0;
}

4.代码编译&#xff0c;运行&#xff0c;调试


4.1 命令行编译运行


(base) chenyingying&#64;chenyingyingdeMacBook-Air DebugTest % g&#43;&#43; main.cpp -o main
(base) chenyingying&#64;chenyingyingdeMacBook-Air DebugTest % /Users/chenyingying/CppProject/DebugTest/main
hello world1


在这里插入图片描述
&#xff08;无法断点调试&#xff09;


4.2 runcode 插件编译运行

在这里插入图片描述
1.右键文件名&#xff0c;点击“RunCode”即可编译运行文件&#xff0c;很方便&#xff1b;但无法Debug。
在这里插入图片描述
运行文件后在“OUTPUT”中输出相应的内容
在这里插入图片描述


4.3 配置文件编译运行调试

参考博文&#xff08;对配置文件的介绍比较详细&#xff09;&#xff1a;https://www.jianshu.com/p/7c6599f21052

在使用vscode进行c&#43;&#43;调试最重要的是需要launch.json文件(负责调试程序),但是经常也需要tasks.json文件(负责编译程序).


4.3.1编译调试文件生成

way1.按钮生成:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
此时VSCode会在你的工程目录下自动新建一个.vscode的文件夹&#xff0c;并新建了launch.json和task.json的文件.
在这里插入图片描述
在这里插入图片描述
way2:&#xff0c;命令引导
task.json–(shift&#43;command&#43;p -> Tasks:Configure Tasks, -> Create tasks.json form templates -> Others )
launch.json–(shift&#43;command-> Debug->c&#43;&#43;(GDB/LLDB)&#xff09;


4.3.2 文件内容

参考博文&#xff1a;https://zhuanlan.zhihu.com/p/103308900?from_voters_page&#61;true复制以下的两个文件内容
参考博文&#xff1a;https://www.jianshu.com/p/7c6599f21052 文件参数含义介绍的比较清晰
launch.json

{"version": "0.2.0","configurations": [{"type": "lldb","request": "launch","name": "Debug",//"program": "${workspaceFolder}/test.out",//上一行是官方写法&#xff0c;但是不同的cpp调试都要改配置&#xff0c;非常麻烦"program": "${workspaceFolder}/${fileBasenameNoExtension}","args": [],"cwd": "${workspaceFolder}","preLaunchTask": "Build with Clang"}]
}

task.json

{"version": "2.0.0","tasks": [{"label": "Build with Clang",//这个任务的名字在launch.json最后一项配置"type": "shell","command": "clang&#43;&#43;","args": ["-std&#61;c&#43;&#43;17","-stdlib&#61;libc&#43;&#43;",//"test.cpp",这里是官方写法&#xff0c;不具有普遍性&#xff0c;注意两个配置文件的统一性即可"${fileBasenameNoExtension}.cpp","-o",//"test.out","${fileBasenameNoExtension}","--debug"],"group": {"kind": "build","isDefault": true}}]
}

4.3.3 编译运行

按“⇧⌘B”编译&#xff0c;编译成功将生成可执行文件a.out 和main 小黑框
在这里插入图片描述
双击main 小黑框&#xff0c;运行结果展示在界面上。
在这里插入图片描述
在这里插入图片描述


4.4.4 调试

在需要调试的文件&#xff08;避免报文件找不到错误&#xff09;底下执行调试操作&#xff08;一下两个图都能开启调试&#xff09;
在这里插入图片描述
在这里插入图片描述
在teminal中能看到程序输出的信息&#xff0c;左边的watch栏可以查看变量的情况。


5.Warning: Debuggee TargetArchitecture not detected, assuming x86_64

完成第3步的设置&#xff0c;正常就可以设置断点调试&#xff0c;设置断点。“Fn&#43;f5”开启调试&#xff0c;但是可能在调试窗口中显示&#xff1a;


Warning: Debuggee TargetArchitecture not detected, assuming x86_64.
在这里插入图片描述


出现这个warming的原因&#xff1a;因为Catalina不再支持lldb调试。
解决&#xff1a;安装插件CodeLLDB&#xff08;用来debug&#xff0c;解决Catalina不支持lldb调试问题&#xff09;



参考博文&#xff1a;https://zhuanlan.zhihu.com/p/106935263?utm_source&#61;wechat_session
参考博文&#xff1a;
Mac下使用VScode进行C/C&#43;&#43;开发&#xff1a;https://www.cnblogs.com/lianshuiwuyi/p/8094388.html
vscode的逻辑是你可以创造很多工作区&#xff0c;每个工作区可以有不同的配置。每个工作区下当然要有项目文件夹&#xff0c;
参考博文&#xff1a;https://zhuanlan.zhihu.com/p/106935263?utm_source&#61;wechat_session


推荐阅读
  • 在Kubernetes上部署JupyterHub的步骤和实验依赖
    本文介绍了在Kubernetes上部署JupyterHub的步骤和实验所需的依赖,包括安装Docker和K8s,使用kubeadm进行安装,以及更新下载的镜像等。 ... [详细]
  • imx6ull开发板驱动MT7601U无线网卡的方法和步骤详解
    本文详细介绍了在imx6ull开发板上驱动MT7601U无线网卡的方法和步骤。首先介绍了开发环境和硬件平台,然后说明了MT7601U驱动已经集成在linux内核的linux-4.x.x/drivers/net/wireless/mediatek/mt7601u文件中。接着介绍了移植mt7601u驱动的过程,包括编译内核和配置设备驱动。最后,列举了关键词和相关信息供读者参考。 ... [详细]
  • 先看官方文档TheJavaTutorialshavebeenwrittenforJDK8.Examplesandpracticesdescribedinthispagedontta ... [详细]
  • Commit1ced2a7433ea8937a1b260ea65d708f32ca7c95eintroduceda+Clonetraitboundtom ... [详细]
  • Java容器中的compareto方法排序原理解析
    本文从源码解析Java容器中的compareto方法的排序原理,讲解了在使用数组存储数据时的限制以及存储效率的问题。同时提到了Redis的五大数据结构和list、set等知识点,回忆了作者大学时代的Java学习经历。文章以作者做的思维导图作为目录,展示了整个讲解过程。 ... [详细]
  • 本文主要解析了Open judge C16H问题中涉及到的Magical Balls的快速幂和逆元算法,并给出了问题的解析和解决方法。详细介绍了问题的背景和规则,并给出了相应的算法解析和实现步骤。通过本文的解析,读者可以更好地理解和解决Open judge C16H问题中的Magical Balls部分。 ... [详细]
  • 本文介绍了一个在线急等问题解决方法,即如何统计数据库中某个字段下的所有数据,并将结果显示在文本框里。作者提到了自己是一个菜鸟,希望能够得到帮助。作者使用的是ACCESS数据库,并且给出了一个例子,希望得到的结果是560。作者还提到自己已经尝试了使用"select sum(字段2) from 表名"的语句,得到的结果是650,但不知道如何得到560。希望能够得到解决方案。 ... [详细]
  • 3.223.28周学习总结中的贪心作业收获及困惑
    本文是对3.223.28周学习总结中的贪心作业进行总结,作者在解题过程中参考了他人的代码,但前提是要先理解题目并有解题思路。作者分享了自己在贪心作业中的收获,同时提到了一道让他困惑的题目,即input details部分引发的疑惑。 ... [详细]
  • 本文讨论了如何在dotnet桌面(Windows)应用程序中添加图标。作者提到可以使用dotnet命令行工具与resource.rc文件一起使用来为标准.NET核心应用程序添加图标。作者还介绍了在创建控制台应用程序时如何编辑projeto1.csproj文件来添加图标。 ... [详细]
  • 本文介绍了在CentOS上安装Python2.7.2的详细步骤,包括下载、解压、编译和安装等操作。同时提供了一些注意事项,以及测试安装是否成功的方法。 ... [详细]
  • 本文介绍了在Windows系统上使用C语言命令行参数启动程序并传递参数的方法,包括接收参数程序的代码和bat文件的编写方法,同时给出了程序运行的结果。 ... [详细]
  • 本文介绍了在Mac上安装Xamarin并使用Windows上的VS开发iOS app的方法,包括所需的安装环境和软件,以及使用Xamarin.iOS进行开发的步骤。通过这种方法,即使没有Mac或者安装苹果系统,程序员们也能轻松开发iOS app。 ... [详细]
  • Java SE从入门到放弃(三)的逻辑运算符详解
    本文详细介绍了Java SE中的逻辑运算符,包括逻辑运算符的操作和运算结果,以及与运算符的不同之处。通过代码演示,展示了逻辑运算符的使用方法和注意事项。文章以Java SE从入门到放弃(三)为背景,对逻辑运算符进行了深入的解析。 ... [详细]
  • Android自定义控件绘图篇之Paint函数大汇总
    本文介绍了Android自定义控件绘图篇中的Paint函数大汇总,包括重置画笔、设置颜色、设置透明度、设置样式、设置宽度、设置抗锯齿等功能。通过学习这些函数,可以更好地掌握Paint的用法。 ... [详细]
  • 本文介绍了在Ubuntu下制作deb安装包及离线安装包的方法,通过备份/var/cache/apt/archives文件夹中的安装包,并建立包列表及依赖信息文件,添加本地源,更新源列表,可以在没有网络的情况下更新系统。同时提供了命令示例和资源下载链接。 ... [详细]
author-avatar
可爱的丿白1985
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有