gpt4 book ai didi

德尔福XE2 : What is the purpose of IMPLICITBUILDING directive found in package

转载 作者:行者123 更新时间:2023-12-03 14:48:48 24 4
gpt4 key购买 nike

当我尝试在 Delphi XE2 中创建新包时,包 dpk 源文件中有一个新构造:IMPLICITBUILDING

那是做什么用的?

package Package1;

{$R *.res}
{$IFDEF IMPLICITBUILDING This IFDEF should not be used by users}
{$ALIGN 8}
{$ASSERTIONS ON}
{$BOOLEVAL OFF}
{$DEBUGINFO ON}
{$EXTENDEDSYNTAX ON}
{$IMPORTEDDATA ON}
{$IOCHECKS ON}
{$LOCALSYMBOLS ON}
{$LONGSTRINGS ON}
{$OPENSTRINGS ON}
{$OPTIMIZATION OFF}
{$OVERFLOWCHECKS OFF}
{$RANGECHECKS OFF}
{$REFERENCEINFO ON}
{$SAFEDIVIDE OFF}
{$STACKFRAMES ON}
{$TYPEDADDRESS OFF}
{$VARSTRINGCHECKS ON}
{$WRITEABLECONST OFF}
{$MINENUMSIZE 1}
{$IMAGEBASE $400000}
{$DEFINE DEBUG}
{$ENDIF IMPLICITBUILDING}
{$IMPLICITBUILD ON}

requires
rtl;

end.

最佳答案

另请参阅此讨论:Why does Delphi change Indy's dpk source file when I change project optionsthis .

“出现在 $IFDEF IMPLICITBUILDING 之间的编译器指令和 $ENDIF 通常由编译器作为参数传递显式编译包。因为这些选项的变化基于配置(调试/发布)和目标平台(Win32、Win64、OSX32)在包中静态定义它们是有问题的项目来源。当在项目源中定义时,它们将始终覆盖编译器传递的选项。 $IFDEF 可以防止这些在显式编译期间使用的选项。

如果包是隐式编译的,这些选项将被使用,但除非您的项目保存在配置/目标中您想要编译的模式,您可能不会得到您期望的结果。

作为一般规则,最好禁用包上的隐式构建并通过项目组构建或通过项目显式编译它们依赖关系。如果您仅使用一个单一平台进行构建单一配置则隐式构建机制就足够了。

IMPLICITBUILDING 是由编译器在编译过程中定义的作为编译的一部分被隐式编译的包取决于它的东西。正如评论中所示,你应该不要试图自己定义这个值”

关于德尔福XE2 : What is the purpose of IMPLICITBUILDING directive found in package,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7427145/

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