我想在我的应用程序中“提供”几个函数/过程甚至是变量,而不是在我自己的代码中使用它们。编译器会自动忽略未使用的变量和函数还是链接器?我该如何改变呢?我已经尝试取消选中CodeGeneration ---> Optimization
但没有运气。
问问题
798 次
3 回答
6
如果程序中的某些内容引用了该对象,则链接器无法将其删除。所以你可以像这样利用这个:
procedure StopLinkerRemoval(P: Pointer);
begin
end;
然后在你的初始化部分你可以这样写:
StopLinkerRemoval(@MyVar);
StopLinkerRemoval(@MyFunction);
您需要做的就是引用该对象。你不需要调用函数,或者读/写变量,只需获取它的地址。
于 2013-02-05T07:46:04.213 回答
4
要“未使用”或未引用procedures
/functions
并在您的应用程序private
中protected
methods
编译,您应该构建一个包并将dcu
文件放入您的库路径中。
public
并且published
methods
即使没有在您的应用程序中被引用,也会被编译。
于 2013-02-05T07:44:12.180 回答
1
链接器是忽略未使用变量的链接器。但是,我不确定它是否与过程和功能相同。您无法更改此更改。
于 2013-02-05T07:38:50.923 回答