当前位置:   article > 正文

M1芯片Mac配置vscode调试C++环境_clean build vscode m1

clean build vscode m1

        近来闲暇无事,看到同门师兄弟掌握技能甚多,吾也想习得一点傍身之技,所以便开始了C++的学习。同时,吾攒钱终于购置了一台丐中丐版m1 macbook air,爱不释手,故想要在mac上来调试C++程序,万事开头难,mac上的vs和win上的vs有着天壤之别,并且不支持调试C++。头秃,何解?寻遍度娘,终于成功配置vscode调试C++的环境,接下来请听吾细细道来。

目录

Step1:下载vscode

Step2:安装clang编译器

Step3:下载扩展

Step4:新建cpp文件

Step5:配置文件

1.配置tasks.json文件

2.配置c_cpp_properties.json文件 

3.编译生成文件

4.配置launch.json文件 

5.调试(debug)

6.配置文件代码

Step6*:调用外部终端

总结

​​​​​​​参考文档

​​​​​​​


​​​​​​​

Step1:下载vscode

        vscode已经完成对m1芯片的适配,可以直接进入官网下载vscode。

Step2:安装clang编译器

        打开终端,输入clang --version查看是否已经安装clang编译器,若已安装,直接进入下一步。

        若未安装,在终端中输入xcode-select --install,按提示进行安装即可。

Step3:下载扩展

        打开vscode, 在侧边栏中点击扩展,搜索并安装以下4个扩展:

  1. C/C++
  2. C++ Intellisense
  3. CodeLLDB(C++debugger)
  4. Chinese(中文扩展包)

        这里注意,在安装CodeLLDB时,会弹出Acquiring CodeLLDB platform package,这是在下载并安装改平台包,如果下载速度很慢,可以直接下载CodeLLDB平台包,m1 mac选择codelldb-aarch64-darwin.vsix进行下载。下载完成后,手动安装已下载的平台包,步骤如下图: 

     

按照提示重启vscode,不再提示Acquiring CodeLLDB platform package表示安装成功。

Step4:新建cpp文件

        这里直接采用微软官方文档中的helloworld.cpp文档。

  1. #include <iostream>
  2. #include <vector>
  3. #include <string>
  4. using namespace std;
  5. int main()
  6. {
  7. vector<string> msg {"Hello", "C++", "World", "from", "VS Code", "and the C++ extension!"};
  8. for (const string& word : msg)
  9. {
  10. cout << word << " ";
  11. }
  12. cout << endl;
  13. }

Step5:配置文件

1.配置tasks.json文件

        首先,点击顶部菜单栏中的终端---配置默认生成任务---C/C++ clang++,此时会生成一个tasks.json文件,这个文件是默认生成的,需要修改其中的args选项,添加一个"-std=c++17",,修改如下:

  1. "args": [
  2. "-fdiagnostics-color=always",
  3. "-g",
  4. "${file}",
  5. "-std=c++17",
  6. "-o",
  7. "${fileDirname}/${fileBasenameNoExtension}"
  8. ]

修改完后,发现依旧会出现语法错误,别急,接下来,需要配置另一个文件。

2.配置c_cpp_properties.json文件 

        使用组合键shift+command+p调出C/C++:编辑配置(json),此时会自动生成一个c_cpp_properties.json文件。

        修改编译器为clang++

        将"compilerPath": "/usr/bin/clang",修改为"compilerPath": "/usr/bin/clang++",

        修改C++标准为C++17

        将"cppStandard": "c++98",修改为"cppStandard": "c++17",

3.编译生成文件

        配置完成后,点击顶部菜单栏中的终端---运行生成任务,此时会生成一个二进制文件,右键这个二进制文件,点击在终端中打开,键入./你的二进制文件名,即可看到输出结果。

        “哎呀呀,这些我都会,就是debug总是不成功,怎么办啊?嘤。”

        别急别急,这就道来。 

4.配置launch.json文件 

        点击顶部菜单栏中的运行---添加配置---C++(GDB/LLDB)---clang++ 生成活动文件,会生成一个launch.json文件。 

        在文件中将"type": "cppdbg",修改为"type": "lldb",

        到此,所有配置工作均完成。

        “这就完了??我不信,我要debug!我要debug!!”

        好不好使,我们试一下不就知道了~

5.调试(debug)

         在文件的第10行放置一个断点,点击顶部菜单栏中的运行---启动调试,各种变量就成功展现在我们眼前了。

6.配置文件代码

        以下是我的三个json文件配置代码:

  tasks.json:

  1. {
  2. "version": "2.0.0",
  3. "tasks": [
  4. {
  5. "type": "cppbuild",
  6. "label": "C/C++: clang++ 生成活动文件",
  7. "command": "/usr/bin/clang++",
  8. "args": [
  9. "-fdiagnostics-color=always",
  10. "-g",
  11. "${file}",
  12. "-std=c++17",
  13. "-o",
  14. "${fileDirname}/${fileBasenameNoExtension}"
  15. ],
  16. "options": {
  17. "cwd": "${fileDirname}"
  18. },
  19. "problemMatcher": [
  20. "$gcc"
  21. ],
  22. "group": {
  23. "kind": "build",
  24. "isDefault": true
  25. },
  26. "detail": "编译器: /usr/bin/clang++"
  27. }
  28. ]
  29. }

c_cpp_properties.json:

  1. {
  2. "configurations": [
  3. {
  4. "name": "Mac",
  5. "includePath": [
  6. "${workspaceFolder}/**"
  7. ],
  8. "defines": [],
  9. "macFrameworkPath": [
  10. "/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/Library/Frameworks"
  11. ],
  12. "compilerPath": "/usr/bin/clang++",
  13. "cStandard": "c17",
  14. "cppStandard": "c++17",
  15. "intelliSenseMode": "macos-clang-arm64"
  16. }
  17. ],
  18. "version": 4
  19. }

launch.json:

  1. {
  2. // 使用 IntelliSense 了解相关属性。
  3. // 悬停以查看现有属性的描述。
  4. // 欲了解更多信息,请访问: https://go.microsoft.com/fwlink/?linkid=830387
  5. "version": "0.2.0",
  6. "configurations": [
  7. {
  8. "name": "clang++ - 生成和调试活动文件",
  9. "type": "lldb",
  10. "request": "launch",
  11. "program": "${fileDirname}/${fileBasenameNoExtension}",
  12. "args": [],
  13. "stopAtEntry": false,
  14. "cwd": "${fileDirname}",
  15. "environment": [],
  16. "externalConsole": false,
  17. "MIMode": "lldb",
  18. "preLaunchTask": "C/C++: clang++ 生成活动文件"
  19. }
  20. ]
  21. }

         “确实是能调试了,可是我的输出结果为什么不在外部的终端里显示,却是在vscode中显示呢?到底怎么回事??嘤。”

        征途已接近尾声,不要着急嘛,这里简单设置一下就好啦~

Step6*:调用外部终端

        点击侧边栏中的管理---设置,在搜索框中输入terminal external,步骤如下:

        将如下如下两项设置均改为external

        重启vscode,再次运行程序,会发现输出结果显示在终端之中了,若终端没有弹出到桌面,可以检查dock栏,这是会发现终端“站”在了小点之上,点开它即可观察输出结果。

总结

        之前在网上找了很久搭建环境的方法,虽然确有很多文章,但有很多并不能成功实现,所以搭建出最后这个可用的环境花了我很多时间(还是菜哈哈哈哈),为了其他像我一样手持m1 Mac的小白可以在其上学习C++,我总结前人的经验整理了这一篇教程,这也是我的第一篇CSDN,希望不是最后一篇哈哈哈哈,求学之路,路漫漫其修远兮,吾将上下而求索。

参考文档

​​​​​​​

        

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/菜鸟追梦旅行/article/detail/315524
推荐阅读
相关标签
  

闽ICP备14008679号