如何配置visual studio代码来编译scons?
How to config visual studio code to compile scons?
我在 ubuntu 上并安装了 vsc、python、scons。我还为 python 和相关工具安装了语法插件。
我正在编辑 SConstruct 文件,我希望当我按下 'F5' 时,它会调出 scons 来执行我的项目文件。
如何配置?
这是我计划很快为我的项目做的事情,但以前从未做过。我将开始寻找 scons doc 的 MSVSProject()、env.MSVSProject() 和 MSVSSolution()、env.MSVSSolution()。
我创建了一个包含以下内容的 tasks.json
文件:
{
// See https://go.microsoft.com/fwlink/?LinkId=733558
// for the documentation about the tasks.json format
"version": "2.0.0",
"tasks": [
{
"taskName": "Build wit SCons",
"command": "scons",
"type": "shell",
"group": "build"
}
]
}
它进行了公平的整合,因为我可以使用 Shift-Ctrl-B 开始构建任务。不幸的是,这不是一个很好的解决方案,因为我还没有找到在 VS Code 中显示输出状态 (succeeded/error) 的方法。
我有两个可行的解决方案。第一个是基于的解决方案:
{
"version": "2.0.0",
"tasks": [
{
"taskName": "SCons BuildVSDebug",
"command": "scons",
"type": "shell",
"group": "build",
"problemMatcher": "$msCompile" // Important to catch the status
}
]
}
我将任务用作 preLaunchTask
。如果 problemMatcher 报告了一些问题,默认情况下 VSCode 不会启动可执行文件。当然 problemMatcher 必须符合输出(在我的例子中 visual studio 编译器 cl.exe)。但是,可以定义自定义匹配器,它可以显式检查 SCons using Regex 的状态以获取像 "scons: build terminated because of errors" 这样的 scons 消息。也可以使用多个输出匹配器...
我的第二个解决方案旨在自行调试 SCons 构建脚本。它不会 运行 编译输出,但允许在 F5 上调试构建系统。
{
"version": "0.2.0",
"configurations": [
{
"name": "Scons Build System",
"type": "python",
"request": "launch",
"pythonPath": "<python 2.7 path>/python",
"program": "<python 2.7 path>/Scripts/scons.py",
"cwd": "${workspaceRoot}",
"debugOptions": [
"WaitOnAbnormalExit",
"WaitOnNormalExit",
"RedirectOutput"
],
...
},
...
]
}
诀窍是从安装包中启动 SCons script.py。不可能简单地写 program: "scons"
- 它不会像 shell 那样被识别。
请注意,我没有指定 SConstruct 文件。通过设置执行目录cwd
.
隐式找到
我在 ubuntu 上并安装了 vsc、python、scons。我还为 python 和相关工具安装了语法插件。 我正在编辑 SConstruct 文件,我希望当我按下 'F5' 时,它会调出 scons 来执行我的项目文件。
如何配置?
这是我计划很快为我的项目做的事情,但以前从未做过。我将开始寻找 scons doc 的 MSVSProject()、env.MSVSProject() 和 MSVSSolution()、env.MSVSSolution()。
我创建了一个包含以下内容的 tasks.json
文件:
{
// See https://go.microsoft.com/fwlink/?LinkId=733558
// for the documentation about the tasks.json format
"version": "2.0.0",
"tasks": [
{
"taskName": "Build wit SCons",
"command": "scons",
"type": "shell",
"group": "build"
}
]
}
它进行了公平的整合,因为我可以使用 Shift-Ctrl-B 开始构建任务。不幸的是,这不是一个很好的解决方案,因为我还没有找到在 VS Code 中显示输出状态 (succeeded/error) 的方法。
我有两个可行的解决方案。第一个是基于
{
"version": "2.0.0",
"tasks": [
{
"taskName": "SCons BuildVSDebug",
"command": "scons",
"type": "shell",
"group": "build",
"problemMatcher": "$msCompile" // Important to catch the status
}
]
}
我将任务用作 preLaunchTask
。如果 problemMatcher 报告了一些问题,默认情况下 VSCode 不会启动可执行文件。当然 problemMatcher 必须符合输出(在我的例子中 visual studio 编译器 cl.exe)。但是,可以定义自定义匹配器,它可以显式检查 SCons using Regex 的状态以获取像 "scons: build terminated because of errors" 这样的 scons 消息。也可以使用多个输出匹配器...
我的第二个解决方案旨在自行调试 SCons 构建脚本。它不会 运行 编译输出,但允许在 F5 上调试构建系统。
{
"version": "0.2.0",
"configurations": [
{
"name": "Scons Build System",
"type": "python",
"request": "launch",
"pythonPath": "<python 2.7 path>/python",
"program": "<python 2.7 path>/Scripts/scons.py",
"cwd": "${workspaceRoot}",
"debugOptions": [
"WaitOnAbnormalExit",
"WaitOnNormalExit",
"RedirectOutput"
],
...
},
...
]
}
诀窍是从安装包中启动 SCons script.py。不可能简单地写 program: "scons"
- 它不会像 shell 那样被识别。
请注意,我没有指定 SConstruct 文件。通过设置执行目录cwd
.