前言
本文提到的vscode 配置c++的方法 适用于2021款macbook pro Monterey 系统。本文跳过了vscode 的安装以及xcode的安装过程,具体安装过程请参阅此大佬配置。 MacOS安装vs code并且配置C/C++环境2020最新版 本文主要是对上述文章中的配置方法进行的优化与改进,下为我的配置文件
三个文件的配置
tasks.json(编译器生成设置)
{
"version": "2.0.0",
"tasks": [
{
"label": "Build with Clang",
"type": "shell",
"command": "clang++",
"args": [
"${file}",
"-std=c++11",
"-o",
"${fileDirname}/.out/${fileBasenameNoExtension}.out",//.out文件生成目录 需要新建当前文件夹下的.out文件夹
"-g",
"--debug"
],
"group": {
"kind": "build",
"isDefault": true
}
}
]
}
用这个替换自动生成的task.json 能够实现如下效果 将所有的编译产生的中间文件以及 .out 文件统一归类到当前目录下的 .out 文件夹,该文件夹需手动创建
另外需要注意的一点:如果更改了程序的内容,保存之后,需要重新shift+command+B,产生新的.out文件,这样再按F5调试才是修改后的结果,否则仍然是修改前的结果。
launch.json(调试器设置)
同样的 , launch.json重的program 要与.out文件保持一致
{
// 使用 IntelliSense 了解相关属性。
// 悬停以查看现有属性的描述。
// 欲了解更多信息,请访问: https://go.microsoft.com/fwlink/?linkid=830387
"version": "0.2.0",
"configurations": [
{
"name": "(lldb) 启动",
"preLaunchTask": "Build with Clang",//调试前执行的任务,就是之前配置的tasks.json中的label字段
"type": "lldb",
"request": "launch",
"program": "${workspaceFolder}/.out/${fileBasenameNoExtension}.out",
"args": [],
"stopAtEntry": false,
"cwd": "${fileDirname}",
"environment": [],
"externalConsole": false,
"MIMode": "lldb"
}
]
}
c_cpp_properties.json(编译器路径和智能感知设置)
按照2020版安装教程,安装之后可能会出现 找不到头文件 的情况,主要是includePath里面没有加入C++相关的头文件,以下是我xcode环境自带的c++的头文件目录配置
{
"configurations": [
{
"name": "Mac",
"includePath": [
"${workspaceFolder}/**",
"/usr/local/include/**",
"/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/lib/clang/13.0.0/include/**",
"/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/usr/include/**",
"/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/include/**",
"/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/Library/Frameworks/**" ],
"defines": [],
"macFrameworkPath": [
"/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/Library/Frameworks"
],
"cStandard": "c17",
"cppStandard": "c++17",
"intelliSenseMode": "macos-clang-arm64",
"compilerPath": ""
}
],
"version": 4
}
当然也可以通过gcc -v -E -x c++ - 命令查看当前头文件目录并将输出的头文件目录加入includePath中
最终效果
加入如下测试代码。 输入 F5 即可编译并运行
#include<iostream>
using namespace std;
int fun(){
cout<<"hello world"<<endl;
return 0;
}
int main(){
for(int i=1;i<9;i++){
fun();
}
return 0;
}
|