我在Delphi XE2版本16.0.4429.46931中有一个组件包,它们都是运行时和设计时包。该软件包已存在一年多了,文件/文件夹结构始终相同。我将所有单元保留在根目录下的专用Source
文件夹中,以及同一根目录中Packages
文件夹中的实际包。因此,这些包位于\Root\Packages\
中,单位位于\Root\Source\
。
今天,在构建运行时包后,我正在阅读提示和警告。其中一个警告是:
[DCC Warning] Inno.TimeChart.pas(1): W1025 Unsupported language feature: 'class constructor'
警告它的自我不是什么让我担心。问题是,当我双击此警告时,我收到来自IDE的错误消息:
我立即注意到的一件事是,它不是在Source
文件夹中查找,而是直接在Packages
文件夹中查找。不知何故,IDE期望该单元与包位于同一位置。自从我在一年前创建软件包以来,我从未更改任何库路径,文件位置或软件包结构。
该文件确实存在,但位于与其看起来不同的地方。该文件从未保存在包含项目的文件夹中,实际上除了包项目本身以外,其他任何内容都未保存在Packages
文件夹中。这一切都存在于Source
文件夹中,但IDE似乎不这么认为。
IDE为什么认为此文件位于不同的文件夹中?当我双击它们时,与同一单元相关的所有其他提示和警告都可以正常工作,但不是这个。
修改
我已经创建了一个新的测试包来解决这个问题。
Root\TestPackage.dpr
Root\Source\TestPackageUnit.pas
导致此编译器警告的特定代码段在此类中:
type
TMyComponent = class(TComponent)
strict private
class constructor Create;
end;
当我使用Process Monitor进行编译时,我看到IDE正在30多个不同的位置搜索此文件(当然是失败的),它看起来像是在每个库路径中搜索,而不是在一个库路径中搜索将包装放在原处。
我尝试的事情
DPR
和DPROJ
文件BDS.exe
;路径以TestPackageUnit.pas
DOF
文件(我认为是旧版本)strict private
更改为private
甚至public
答案 0 :(得分:3)
当delphi搜索路径列表太长时,我确实遇到了这样的问题。我总是可以帮助自己将相关目录更多地移到前面,即在列表中。
答案 1 :(得分:1)
检查文件是否尚未添加到项目文件(dpr或dpk)。项目 - 查看源将显示该文件。
如果不是这种情况,请尝试在项目中搜索文件名中的所有文件,看看会出现什么。
答案 2 :(得分:1)
在另一个网站上找到了这个:
还有另一个QC可能与您的问题有关。 http://qc.embarcadero.com/wc/qcmain.aspx?d=87693
转到项目选项 - > Delphi编译器 - >输出C / C ++及以下 C / C ++输出文件生成选择仅生成DCU。
Dalija Prasnikar