mac 使用VScode 进行C++开发
1.查看编译器情况2.安装插件C/C++,C/C++ Clang Command Adapte3.新建一个C++ project3.1.本地新建文件夹3.2.新建mian.cpp文件3.3.编写hello word demo4.代码编译,运行,调试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 <iostream>using namespace std;int main(){cout << "hello world" << endl;return 0;}
4.代码编译,运行,调试
4.1 命令行编译运行
(base) chenyingying@chenyingyingdeMacBook-Air DebugTest % g++ main.cpp -o main
(base) chenyingying@chenyingyingdeMacBook-Air DebugTest % /Users/chenyingying/CppProject/DebugTest/main
hello world1
(无法断点调试)
4.2 runcode 插件编译运行
1.右键文件名,点击“RunCode”即可编译运行文件,很方便;但无法Debug。
运行文件后在“OUTPUT”中输出相应的内容
4.3 配置文件编译运行调试
参考博文(对配置文件的介绍比较详细):/p/7c6599f21052
在使用vscode进行c++调试最重要的是需要launch.json文件(负责调试程序),但是经常也需要tasks.json文件(负责编译程序).
4.3.1编译调试文件生成
way1.按钮生成:
此时VSCode会在你的工程目录下自动新建一个.vscode的文件夹,并新建了launch.json和task.json的文件.
way2:,命令引导
task.json–(shift+command+p -> Tasks:Configure Tasks, -> Create tasks.json form templates -> Others )
launch.json–(shift+command-> Debug->c++(GDB/LLDB))
4.3.2 文件内容
参考博文:/p/103308900?from_voters_page=true复制以下的两个文件内容
参考博文:/p/7c6599f21052 文件参数含义介绍的比较清晰
launch.json
{"version": "0.2.0","configurations": [{"type": "lldb","request": "launch","name": "Debug",//"program": "${workspaceFolder}/test.out",//上一行是官方写法,但是不同的cpp调试都要改配置,非常麻烦"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++","args": ["-std=c++17","-stdlib=libc++",//"test.cpp",这里是官方写法,不具有普遍性,注意两个配置文件的统一性即可"${fileBasenameNoExtension}.cpp","-o",//"test.out","${fileBasenameNoExtension}","--debug"],"group": {"kind": "build","isDefault": true}}]}
4.3.3 编译运行
按“⇧⌘B”编译,编译成功将生成可执行文件a.out 和main 小黑框
双击main 小黑框,运行结果展示在界面上。
4.4.4 调试
在需要调试的文件(避免报文件找不到错误)底下执行调试操作(一下两个图都能开启调试)
在teminal中能看到程序输出的信息,左边的watch栏可以查看变量的情况。
5.Warning: Debuggee TargetArchitecture not detected, assuming x86_64
完成第3步的设置,正常就可以设置断点调试,设置断点。“Fn+f5”开启调试,但是可能在调试窗口中显示:
Warning: Debuggee TargetArchitecture not detected, assuming x86_64.
出现这个warming的原因:因为Catalina不再支持lldb调试。
解决:安装插件CodeLLDB(用来debug,解决Catalina不支持lldb调试问题)
参考博文:/p/106935263?utm_source=wechat_session
参考博文:
Mac下使用VScode进行C/C++开发:/lianshuiwuyi/p/8094388.html
vscode的逻辑是你可以创造很多工作区,每个工作区可以有不同的配置。每个工作区下当然要有项目文件夹,
参考博文:/p/106935263?utm_source=wechat_session