Delphi编译、调试的路径搜索方案
现在还经常有同事和朋友问我怎么编译不了程序,或断点不起作用等等问题,今天索性就把我知道的东西整理出来供需要的朋友参考参考。由于这部分东西没发现有正式文档说明,只是本人靠经验摸索出来的,所以不能保证肯定正确无误,讲的不对的地方就请指出来。
1. Delphi编译的时候,对于需要用到的单元文件是按着先搜索.pas文件后搜索.dcu文件的顺序进行。就是说先搜索.pas文件,如果.pas文件没有搜索到,然后再搜索相应的.dcu文件。如果都没有找到,编译器就会报找不到***.dcu文件的错误。 2. 对应编译、调试的搜索路径是按着"项目文件--》项目搜索路径--》IDE环境Library路径--》系统环境变量里的路径"的顺序进行搜索。所以提示找不到.dcu的时候,只要看看.pas文件或.dcu文件是否在上面的这些路径里,如果不在,在合适的地方把文件路径添加进去即可。注意:搜索路径的顺序很重要,不是危言耸听。 3. 至于不能断点的问题,基本可以确定是没有找到.pas文件或没有找到"含有Debug信息"的.dcu文件。这里着重强调含有Debug信息的.dcu文件是因为Delphi默认搜索路径"$(delphi)\lib"下的VCL源码的.dcu文件是不含Debug信息的,这也就是为什么默认情况下VCL源码断不下来的原因。细心的人会发现"$(delphi)\lib"下有个"Debug"的文件夹,而且里面也都是VCL源码对应的.dcu文件,这些就是含有Debug信息的.dcu文件。所以只要能找到这些.dcu文件就可以调试VCL源码了。 有些人会说只要"User Debug Dcus"就可以调试VCL源码了,说的不错,确实如此,但选择这个选项归根结底还是把"$(delphi)\lib\Debug"添加到了搜索路径里,并且优先于其他路径进行搜索,所以就能调试VCL源码了。打开"Debugger Options"就可以看到"Debug Dcu Path:"下面写的就是"$(delphi)\lib\Debug",看到这估计能明白怎么回事了吧。 当然你也可以直接把"$(delphi)\lib\Debug"添加到搜索路径,或者直接把VCL源码.pas文件的路径添加到搜索路径,记住一定要位于"$(delphi)\lib\"的前面,这样就可以对VCL源码进行调试了。调试其他控件的源码跟这类似。 方法各种各样,只要明白了怎么回事,什么问题都可以解决。
转哉:https://blog.csdn.net/sd01397055/article/details/86413952