H hkcbz Unregistered / Unconfirmed GUEST, unregistred user! 2007-01-31 #1 我想知道,假如我的项目中引用了很多单元,但有的单元中我只用到了其中的一个函数,编译时是不是这个单元中的所有函数都会被编译进EXE中呀,还是DELPHI只编译用到的函数
J Johnny_du Unregistered / Unconfirmed GUEST, unregistred user! 2007-01-31 #2 应该是编译整个单元,如果你想要可执行文件尽量的小的话,可以使用动态链接库代替静态编译,这样当需要的时候才把函数调入内存中。
A abszo Unregistered / Unconfirmed GUEST, unregistred user! 2007-01-31 #3 不会的,编译的时候会全部编译,但是连接的时候,只连接用到的函数,没有用到的不会连接进去的。
M mszok Unregistered / Unconfirmed GUEST, unregistred user! 2007-02-01 #4 这个你可以自已测一下: 方法: 多引用一个两个单元,看看编译后的可执行文件有没有增大. 应该是可执行文件不会增大,DELPHI编译采用的smart技术
H hkcbz Unregistered / Unconfirmed GUEST, unregistred user! 2007-02-02 #5 我试了一个楼上的方法,发现多引用单元后,EXE大小没有变,但是不是编译器真的只编译用到的函数到EXE中呢 不知 Johnny_du abszo 说的是否有道理呢
M mark72 Unregistered / Unconfirmed GUEST, unregistred user! 2007-03-06 #6 只编译连接用到的函数,否则,delphi设计上就有问题了。当然这些是确定代码的情况,有一些代码不确定的时候,比如在使用后期绑定的时候,恐怕就要把可能用到的全都编译进去了