设计时包无法构建 - 找不到文件:“Graphics.dcu”

Posted

技术标签:

【中文标题】设计时包无法构建 - 找不到文件:“Graphics.dcu”【英文标题】:Design-time package fails to build - File not found: 'Graphics.dcu' 【发布时间】:2012-02-06 12:03:32 【问题描述】:

在 Delphi XE2 中,我在一对设计/运行时包中有一个控件。最初,一切正常。我已经多次构建了它们中的每一个。突然没有任何警告,设计时包开始在我的一个单元中抱怨我构建时缺少Graphics 单元。 Graphics 是标准单位,但在这个地方找不到。我什至没有对此单元进行任何更改,据我所知,任何可能影响此的更改。

这里只是这个单元顶部(界面)的用途:

uses
  Graphics, ColorConv, Classes, Dialogs, ZLib;

如您所见,这是一个非常简单的单元,我只对这个项目进行了非常简单的更改。是什么让它突然开始抱怨这件事?

奇怪的是,如果我安装它一切正常,它就是无法构建。

有相当多的代码,我不想发布整个代码。

【问题讨论】:

@Downvoter:请解释一下这怎么“没用”? +1。您肯定不是唯一处于相同情况的人,当他们迁移到 XE2 时,它肯定会帮助其他人。 【参考方案1】:

大胆猜测:它需要Vcl. 命名空间前缀?

【讨论】:

做到了 - 我是命名空间前缀的新手:D 如果您确保 Vcl 包含在项目选项的 Unit Scope Names 列表中,则无需在代码中添加 Vcl. 前缀。 @PresleyDias XE2 介绍了 Firemonkey 以及其他一些新的好东西。通过这些更改,Embarcadero 有必要添加这些前缀,以便您可以定义要使用的单位集合中的 哪个。例如Vcl.Graphics vs FMX.Graphics(我不知道这是否是一个真正的比较,只是一个例子) @JerryDodge,好的,关于前缀的想法,很好的例子【参考方案2】:

如果您的项目中有多个图形声明(或其他 VCL 单元,如:控件、表单 ...),您可以将 VCL 命名空间添加到您的项目中 如下:

project menu-->options-->delphi compiler->>add in "unit scope names" value "Vcl"

【讨论】:

【参考方案3】:

检查Tools->Options->Environment Options->Delphi Options->Library 中的路径,尤其是Library PathBrowsing Path 设置。我安装的 XE2 的默认值(不包括第三方组件和我自己的东西添加的那些):

图书馆:

c:\program files (x86)\embarcadero\rad studio\9.0\lib\Win32\release;c:\program files (x86)\embarcadero\rad studio\9.0\Imports;C:\Users\Public\Documents\RAD Studio\9.0\Dcp;c:\program files (x86)\embarcadero\rad studio\9.0\include;

浏览:

$(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\fmx;$(BDS)\source\databinding\components;$(BDS)\source\databinding\engine;$(BDS)\source\databinding\graph;$(BDS)\source\fmi;$(BDS)\source\data;$(BDS)\source\data\ado;$(BDS)\source\data\bde;$(BDS)\source\data\cloud;$(BDS)\source\data\datasnap;$(BDS)\source\data\dbx;$(BDS)\source\data\dsnap;$(BDS)\source\data\Test;$(BDS)\source\data\vclctrls;

此外,由于您是 XE2 的新手,您可能需要检查(在 IDE 之外)是否定义了 PLATFORM 的环境变量。一些 PC 制造商(以 HP 为例)在他们的计算机上定义了这个变量,它会干扰 IDE 的要求。 (IDE 使用 PLATFORM 作为用于不同平台的路径中的临时环境变量,如果在 IDE 之外有预定义的,则会失败。)您可以通过打开命令提示符并键入 SET PLATFORM 并点击 Enter。如果有一个预定义,可能会导致各种难以追踪的问题;您可以在我遇到的每台机器上安全地删除它。 (右击My ComputerStart->Computer,选择PropertiesAdvanced System SettingsEnvironmental Variables。)

【讨论】:

很好的提示,但其他答案解决了我的问题:D

以上是关于设计时包无法构建 - 找不到文件:“Graphics.dcu”的主要内容,如果未能解决你的问题,请参考以下文章

用于包/组件开发的 Delphi 环境设置

构建失败? “无法启动程序...系统找不到指定的文件”

TFS 构建服务器无法使发布配置文件工作:“找不到有效的 AspnetCompilerPath”

Flutter:Gradle 构建无法生成 .apk 文件。这个文件很可能是在***下生成的,但是工具找不到

组件设计-“找不到文件:'DockForm.dcu”?

升级到 Xcode 10 后的问题:找不到构建输入文件