Delphi找不到System.dcu;默认路径设置应该是什么?

问题描述 投票:0回答:6

每当我尝试编译某些内容时,都会出现此错误:“F1027 未找到单元:‘System.pas’或二进制等效项 (.dcu)”。

安装组件后得到它,删除它,重新安装RAD studio,但仍然一样。

为了修复它,我需要库路径浏览路径。请任何人发布你的,以便我让它工作。

我发现的解决方法是将路径“$(BDS)\lib\win32\debug”包含到库路径中,但这不是正确的方法。所以我需要你的道路。谢谢!

delphi delphi-xe
6个回答
14
投票

这来自注册表中的 HKLM\Software\Embarcadero\BDS\8.0\Library 项 - 您可以将其保存到 .reg 文件,然后导入它(当然,首先对路径进行任何必要的修复):

Windows Registry Editor Version 5.00

[HKEY_LOCAL_MACHINE\SOFTWARE\Embarcadero\BDS\8.0\Library]
"Browsing Path"="$(BDS)\\SOURCE\\VCL;$(BDS)\\source\\rtl\\common;$(BDS)\\SOURCE\\RTL\\SYS;$(BDS)\\source\\rtl\\win;$(BDS)\\source\\ToolsAPI;$(BDS)\\SOURCE\\IBX;$(BDS)\\source\\Internet;$(BDS)\\SOURCE\\PROPERTY EDITORS;$(BDS)\\source\\soap;$(BDS)\\SOURCE\\XML;$(BDS)\\source\\db;$(BDS)\\source\\Indy10\\Core;$(BDS)\\source\\Indy10\\System;$(BDS)\\source\\Indy10\\Protocols;$(BDS)\\source\\database;"
"Debug DCU Path"="$(BDSLIB)\\$(Platform)\\debug;$(BDS)\\RaveReports\\Lib"
"HPP Output Directory"="$(BDSCOMMONDIR)\\hpp"
"Language Library Path"="$(BDSLIB)\\$(Platform)\\release\\$(LANGDIR);$(BDS)\\lib\\$(LANGDIR)"
"Package DCP Output"="$(BDSCOMMONDIR)\\Dcp"
"Package DPL Output"="$(BDSCOMMONDIR)\\Bpl"
"Package Search Path"="$(BDSCOMMONDIR)\\Bpl"
"Translated Debug Library Path"="$(BDSLIB)\\$(Platform)\\debug\\$(LANGDIR)"
"Translated Library Path"="$(BDSLIB)\\$(Platform)\\release\\$(LANGDIR)"
"Translated Resource Path"="$(BDSLIB)\\$(Platform)\\release\\$(LANGDIR)"
"Search Path"="$(BDSLIB)\\$(Platform)\\release;$(BDSUSERDIR)\\Imports;$(BDS)\\Imports;$(BDSCOMMONDIR)\\Dcp;$(BDS)\\include;C:\\Program Files\\Raize\\CS4\\Lib\\RS-XE;;$(BDS)\\RaveReports\\Lib"

为了使 MSBuild 正常工作(以及项目配置),您需要确保正确设置以下环境变量:

PLATFORM=ANYCPU

11
投票

库路径顶行:

$(BDSLIB)\$(平台) 释放

一些安装程序错误地将其解析为两行并将它们分开。


5
投票

检查 Delphi IDE 菜单:工具 * 选项,查看定义的内容。 我的默认安装有2个重要的“环境变量”, BDSLIB,定义为“c:\program files mbarcadero 广告工作室\8.0\lib" 平台,定义为“Win32”。

在同一表格的“库”下,定义了 库路径:,路径开头为“$(BDSLIB)\$(Platform) 释放;...

这应该相当于 C:\program files mbarcadero 广告工作室\8.0\lib\Win32 elease”,您应该在其中找到 System.dcu。确保该文件在那里。也许它已被您的组件工作删除或损坏。 Win32 下还有一个“Debug”目录,其中应该包含包含调试信息的 dcu。如果发行版 dcu 丢失或损坏,您可以复制调试版本作为快速测试。

听起来编译器找不到 dcu,然后还查找源文件来重新创建它。但通常应该使用dcu。

我相信源代码位于 PF\Embarcadero\Rad Studio\8.0\source tl\sys 作为 system.pas。

以上都是默认的Delphi选项。项目的选项也可以更改,这可能会干扰上述内容。首先尝试上面的方法。然后创建一个新项目并查看它是否可以编译,因为它将仅使用默认值。

帕特里克 纽约


4
投票

查看此页面上的 -cleanregistryide 选项:

http://support.embarcadero.com/es/article/42597

它将允许您恢复 IDE 的默认安装路径。如果您使用此选项,则需要重新安装第三方加载项。当安装了第 3 方 IDE 工具时,我在升级安装后遇到了这个问题。

HTH 纳维德


1
投票

对于XE4,请使用此restore.reg

Windows 注册表编辑器版本 5.00

[HKEY_CURRENT_USER\Software\Embarcadero\BDS .0\Library\Win32]

“搜索路径”=“$(BDS)\Imports;$(BDSCOMMONDIR)\Dcp;$(BDS)\include;C:\Program Files (x86)\Embarcadero\RAD Studio .0\lib;C:\Program文件 (x86)\Embarcadero\RAD Studio .0\include;C:\Program Files (x86)\Embarcadero\RAD Studio .0\Imports;$(BDSLIB)\$(平台) 释放;$(BDSUSERDIR)\Imports;$(BDS)\Imports;$(BDSCOMMONDIR)\Dcp\$(平台);$(BDS)\include"

您可以将 11.0 更改为您的 Delphi 版本


0
投票

我遇到了同样的问题,在浏览此处的解决方案并尝试后,它仍然存在。

我最终追踪到安装的组件之一已将无效路径插入到库路径中。

我的案例中的违规组件来自 TMS。

在我更正路径后(其中插入了 ./,我将其删除),一切都按预期工作。

示例: C:\sourcecode mssoftware\TMS\Sphinx\packages\d11\Win32\Release

曾经

C:\sourcecode mssoftware\TMS\Sphinx\packages\d11.\Win32\Release

删除了 .\ 并且一切正常。

© www.soinside.com 2019 - 2024. All rights reserved.