作者:可爱的丿白1985 | 来源:互联网 | 2023-08-28 11:20
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}/${fileBasenameNoExtension}" , "args" : [ ] , "cwd" : "${workspaceFolder}" , "preLaunchTask" : "Build with Clang" } ] }
task.json
{ "version" : "2.0.0" , "tasks" : [ { "label" : "Build with Clang" , "type" : "shell" , "command" : "clang&#43;&#43;" , "args" : [ "-std&#61;c&#43;&#43;17" , "-stdlib&#61;libc&#43;&#43;" , "${fileBasenameNoExtension}.cpp" , "-o" , "${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