Delphi编译、调试的路径搜索
2013-04-27 11:29
288 查看
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源码进行调试了。调试其他控件的源码跟这类似。
方法各种各样,只要明白了怎么回事,什么问题都可以解决。
现在还经常有同事和朋友问我怎么编译不了程序,或断点不起作用等等问题,今天索性就把我知道的东西整理出来供需要的朋友参考参考。由于这部分东西没发现有正式文档说明,只是本人靠经验摸索出来的,所以不能保证肯定正确无误,讲的不对的地方就请指出来。
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源码进行调试了。调试其他控件的源码跟这类似。
方法各种各样,只要明白了怎么回事,什么问题都可以解决。
相关文章推荐
- linux gcc 编译时头文件和库文件搜索路径
- linux gcc 编译时头文件和库文件搜索路径
- linux gcc 编译时头文件和库文件搜索路径
- linux-gcc 编译时头文件和库文件搜索路径
- Linux下gcc编译中关于头文件与库文件搜索路径相关问题(一)
- linux下用gcc编译和运行时头文件和库文件的搜索路径
- linux-gcc 编译时头文件和库文件搜索路径
- gcc编译的头文件和库文件搜索路径
- linux系统编译C++程序时头文件和库文件搜索路径
- delphi编译时调试错行的问题现象,原因和处理
- linux gcc 编译时头文件和库文件搜索路径
- 指定动态库.so编译运行搜索路径方法
- 转载: Linux下gcc编译中关于头文件与库文件搜索路径相关问题
- linux编译 路径搜索
- linux gcc 编译时头文件和库文件搜索路径
- linux-gcc 编译时头文件和库文件搜索路径
- linux gcc 编译时头文件和库文件搜索路径
- 交叉编译时候如何配置连接库的搜索路径
- linux gcc 编译时头文件和库文件搜索路径
- linux gcc 编译时头文件和库文件搜索路径