gpt4 book ai didi

delphi - 如何在VSCode任务错误中配置文件路径

转载 作者:行者123 更新时间:2023-12-03 15:57:42 26 4
gpt4 key购买 nike

我在 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/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com