delphi – 如何在编译时告诉项目是程序还是库?
发布时间:2020-12-15 04:09:56 所属栏目:大数据 来源:网络整理
导读:我正在尝试知道项目是否是一个库,在阅读了帮助后我写了这段代码不起作用: {$IF DEFINED(LIBPREFIX)} {$DEFINE PROJECT_IS_EXECUTABLE} {$UNDEF PROJECT_IS_LIBRARY}{$ELSE} {$DEFINE PROJECT_IS_EXECUTABLE} {$UNDEF PROJECT_IS_LIBRARY}{$IFEND} 我试过DEF
我正在尝试知道项目是否是一个库,在阅读了帮助后我写了这段代码不起作用:
{$IF DEFINED(LIBPREFIX)} {$DEFINE PROJECT_IS_EXECUTABLE} {$UNDEF PROJECT_IS_LIBRARY} {$ELSE} {$DEFINE PROJECT_IS_EXECUTABLE} {$UNDEF PROJECT_IS_LIBRARY} {$IFEND} 我试过DEFINED,DECLARED和 {$IF (LIBPREFIX = '')} 对于DLL和程序,每次尝试总是返回相同的内容. 编辑 我的目的是从“PE文件”中删除额外的信息. 我直接在.dpr项目文件中进行,所以不管其他单元是如何编译的,但我不能在DLL项目中做同样的事情. 因此,我正在寻找一种方法来阻止它在DLL项目中. 这就是我解决这个问题的方法,我将这个指令添加到我的.dpr程序中: {$DEFINE STRIPE_PE_INFO} {$DEFINE STRIPE_RTTI} {$I DDC_STRIP.inc} 并且DDC_STRIP.inc具有所有逻辑. 解决方法
编译文件时无法知道这一点.源文件可以编译为.dcu,然后链接到任何类型的项目.一个很好的例子是RTL和VCL单元.
您可以做的最好的事情是在项目选项中定义一个条件,指示项目是否是库.但是,在构建使用此单元的任何项目时,您需要确保始终重新编译.dcu. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |