说明
最近配置MAC上CPP的运行环境,在安装必要的CPP插件后,配置launch和task等json文件后,点击运行三角形,每次都会跳出main想要访问桌面上的文件。并且输出也是在调试控制台,非常逆天。

尝试
尝试1:尽管我尝试将tasks.json文件上的panel改为new,仍然无济于事。
尝试2:赋予vscode桌面访问权限。

这里感觉很无语的main程序获取访问权限,猜测是mac系统对进程赋予权限的设置有bug。我们每次起一遍main,mac系统都不能识别到已经赋予的访问权限。
解决办法
解决办法:安装code runner插件,不要用vscode自带的运行(真的很难用 )。
其他
.vscode/c_cpp_properties.json
            
            
              bash
              
              
            
          
          {
    "configurations": [
        {
            "name": "Mac",
            "includePath": [
                "${workspaceFolder}/**"
            ],
            "defines": [],
            "macFrameworkPath": [
                "/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/System/Library/Frameworks"
            ],
            "compilerPath": "/usr/bin/clang++",
            "cStandard": "c17",
            "cppStandard": "c++17",
            "intelliSenseMode": "macos-clang-x64"
        }
    ],
    "version": 4
}
        .vscode/launch.json
            
            
              bash
              
              
            
          
          {
    "version": "0.2.0",
    "configurations": [
        {
            "type": "lldb",
            "request": "launch",
            "name": "mydb",
            "program": "${fileDirname}/${fileBasenameNoExtension}",
            "args": [],
            "cwd": "${workspaceFolder}",
            "preLaunchTask": "Build with Clang"
        }
    ]
  }
  
        注意type改成lldb,program选项填生成的可执行文件,cwd选项填当前工作路径,preLaunchTask选项填写tasks.json的label。
.vscode/tasks.json
            
            
              cpp
              
              
            
          
          {
    "version": "2.0.0",
    "tasks": [
        {
            "label": "Build with Clang",
            "type": "shell",
            "command": "clang++",
            "args": [
                "-std=c++17",
                "-stdlib=libc++",
				"-g",
                "${file}",
                "-o",
                "${fileDirname}/${fileBasenameNoExtension}",
                "--debug"
            ],
            "group": "build"
        },
    
    ]
}
        注意label选项,type应该无所谓,args要填对,-g是要编译的文件,-o是编译输出文件名。