- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我在 VSCode 中配置了一个任务来编译 Delphi 2005 dpk。它正在工作并在“问题 View ”上返回错误,但它没有在文件中显示该错误。
我认为发生这种情况是因为当我单击错误时,我收到错误消息:
Unable to open 'sr075pro.pas': File not found (...projectfolder\sr075pro.pas)
但是该文件位于...projectfolder\webservices\sr075pro.pas
中。
我找不到一种方法来告诉任务该文件位于子文件夹中。我尝试在“fileLocation”标签上使用“相对”选项,但没有成功。
返回的错误:
Compiling sa_webservices...
Borland Delphi Version 13.0 Copyright (c) 1983,99 Inprise Corporation
sr075pro.pas(99) Error: Undeclared identifier: 'ni'
sa_webservices.dpk(802) Fatal: Could not compile used unit 'sr075pro.pas'
我的任务配置:
{
"version": "0.1.0",
"name": "Compilar",
"command": "C:\\Compilers\\compile.bat",
"suppressTaskName": true,
"isShellCommand": true,
"isBuildCommand": true,
"tasks": [
{
"taskName": "Compile sa_webservices",
"isBuildCommand": false,
"isTestCommand": false,
"showOutput": "always",
"args": [
"sa_webservices"
],
"problemMatcher": {
"owner": "external",
"fileLocation": "relative",
"pattern": {
"regexp": "^([\\w]+\\.(pas|dpr|dpk))\\((\\d+)\\)\\s(Fatal|Error|Warning|Hint):(.*)",
"file": 1,
"line": 3,
"message": 5
}
}
}
我的compile.bat:
@echo off
@P:
@set arg1=%1
shift
...
if "%arg1%" == "sa_webservices" set arg2="webservices"
...
echo Compiling %arg1%...
cd\%arg2%
dcc32.exe -H -W -Q %arg1%.dpk
最佳答案
您的任务配置错误。首先,你没有关闭所有括号,但我猜这是在 StackOverflow 上复制并粘贴它时犯的一个错误。否则任务配置根本不起作用。
现在来看看真正的问题:DCC32 生成包含相对文件路径的提示和警告。这些路径相对于项目文件。在任务配置中,您可以通过设置
来定义编译器的输出以包含相对路径"fileLocation": "relative"
Visual Studio Code 不知道如何根据编译器消息给出的相对路径构建正确的绝对路径。因此它猜测您当前的 ${workspaceRoot}
(在您的情况下是 projectfolder
)将是绝对路径。
这解释了为什么您会看到包含错误文件路径的错误和警告。为了获得正确的路径,您需要告诉 VSCode 正确的路径来组合相对路径。您只需将正确的路径添加到 tasks.json
中的 fileLocation
条目即可完成此操作:
"fileLocation": ["relative", "${workspaceRoot}\\webservices"]
整个tasks.json看起来像这样:
{
"version": "0.1.0",
"name": "Compilar",
"command": "C:\\Compilers\\compile.bat",
"suppressTaskName": true,
"isShellCommand": true,
"isBuildCommand": true,
"tasks": [
{
"taskName": "Compile sa_webservices",
"isBuildCommand": false,
"isTestCommand": false,
"showOutput": "always",
"args": [
"sa_webservices"
],
"problemMatcher": {
"owner": "external",
"fileLocation": ["relative", "${workspaceRoot}\\webservices"],
"pattern": {
"regexp": "^([\\w]+\\.(pas|dpr|dpk))\\((\\d+)\\)\\s(Fatal|Error|Warning|Hint):(.*)",
"file": 1,
"line": 3,
"message": 5
}
}
}
]
}
关于delphi - 如何在VSCode任务错误中配置文件路径,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41957625/
我是一名优秀的程序员,十分优秀!