欢迎访问悦橙教程(wld5.com),关注java教程。悦橙教程  java问答|  每日更新
页面导航 : > > > 文章正文

Python脚本,

来源: javaer 分享于  点击 1379 次 点评:99

Python脚本,


Python脚本 - 快速建立VSCode C/C++的配置文件

VSCode运行C/C++代码需要事先编写配置文件,本文则编写一个脚本来实现此功能。

本文配置文件内容摘自Blackkitty’s Blog - 【VSCode】Windows下VSCode编译调试c/c++【更新】。对于MinGW安装和配置的问题、VSCode运行代码的问题,也可参考此链接。

所需条件

  • VSCode软件
  • MinGW安装完毕
  • Python 3

脚本代码

执行脚本时,脚本会创建文件夹.vscode,并在其中写入配置文件。

脚本代码如下:

import os
import codecs

s_launch = """
// Available variables which can be used inside of strings.
// ${workspaceRoot}: the root folder of the team        
// ${file}: the current opened file                     
// ${fileBasename}: the current opened file's basename 
// ${fileDirname}: the current opened file's dirname    
// ${fileExtname}: the current opened file's extension  
// ${cwd}: the current working directory of the spawned process
{
    "version": "0.2.0",
    "configurations": [{
        "name": "C++ Launch (GDB)",     // 配置名称,将会在启动配置的下拉菜单中显示
        "type": "cppdbg",               // 配置类型,这里只能为cppdbg
        "request": "launch",            // 请求配置类型,可以为launch(启动)或attach(附加)
        "targetArchitecture": "x64",    // 生成目标架构,一般为x86或x64,可以为x86, arm, arm64, mips, x64, amd64, x86_64
        "program": "${cwd}\\\\${fileBasenameNoExtension}.exe",  // 将要进行调试的程序的路径

        "miDebuggerPath": "gdb.exe",    // miDebugger的路径,注意这里要与MinGw的路径对应

        "args": [],                     // 程序调试时传递给程序的命令行参数,一般设为空即可
        "stopAtEntry": false,           // 设为true时程序将暂停在程序入口处,一般设置为false
        "cwd": "${fileDirname}",        // 调试程序时的工作目录,一般为${workspaceRoot}即代码所在目录
        "externalConsole": true,        // 调试时是否显示控制台窗口,一般设置为true显示控制台
        "preLaunchTask": "g++"          // 调试会话开始前执行的任务,一般为编译程序,c++为g++, c为gcc
    }]
}
"""

s_tasks = """
{
    "version": "0.1.0",
    "command": "g++",
    "args": ["-g","${file}","-o","${fileBasenameNoExtension}.exe"],    // 编译命令参数
    "problemMatcher": {
        "owner": "cpp",
        "fileLocation": ["relative", "${workspaceRoot}"],
        "pattern": {
            "regexp": "^(.*):(\\\\d+):(\\\\d+):\\\\s+(warning|error):\\\\s+(.*)$",
            "file": 1,
            "line": 2,
            "column": 3,
            "severity": 4,
            "message": 5
        }
    }
}
"""

if not os.path.exists('.vscode'):
    os.mkdir('.vscode')

f_launch = codecs.open('.vscode//launch.json', 'w', 'utf-8')
f_tasks = codecs.open('.vscode//tasks.json', 'w', 'utf-8')

f_launch.write(s_launch)
f_tasks.write(s_tasks)

f_launch.close()
f_tasks.close()

相关文章

    暂无相关文章

用户点评