我想在我的应用程序中“提供”多个函数/过程甚至变量,而无需在我自己的代码中使用它们。编译器会自动忽略未使用的变量和函数还是链接器?我怎样才能改变这一点?我已经尝试取消选中
CodeGeneration ---> Optimization
但没有成功。
如果程序中的某些内容引用了该对象,则链接器无法删除它。所以你可以这样利用这个:
procedure StopLinkerRemoval(P: Pointer);
begin
end;
然后在初始化部分你可以这样写:
StopLinkerRemoval(@MyVar);
StopLinkerRemoval(@MyFunction);
您所需要做的就是引用该对象。您不需要调用函数,或读/写变量,只需获取它的地址即可。
要在应用程序中编译“未使用”或未引用的
procedures
/functions
以及 private
和 protected
methods
,您应该构建一个包并将 dcu
文件放入您的库路径中。
即使没有在您的应用程序中引用,public
和 published
methods
也会被编译。
链接器会忽略未使用的变量。但是,我不确定它是否对过程和功能具有相同的作用。您无法更改此更改。