Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Delphi: Общие вопросы > Release и Debug сборки


Автор: CTapMex 22.10.2008, 14:38
Приветствую.
вопрос этот практически нигде не освещен , ну я не смог найти в общем.

использую delphi 2007 . в ней есть настройки параметров сборки Release и Debug . одна из разниц между ними - не включается отладочная информация.
возникло 2 вопроса
1. если я использую делфи без всяких сторонних компонентов, то в debug сборке берутся dcu файлы из папок, указанных в debug dcu files (настройки среды), а в релизе из library paths ?
2. когда устанавливаешь сторонние компоненты , напрмиер тот же fibplus, они компилируются в обе версии , или только в релиз, или только в дебаг?
т.е. интересует процесс разработки
ставится делфи, ставятся все нужные компоненты но компилируются они все в дебаг сборку. получив приемлимый результат работы мы  (с помощью скривтов автосборщика, ну или машины где все версии компонент собраны в релиз) мы собираем релиз версию? 

лет 5 уже программирую на делфи , но как то этому не придавал значения, да и не знал. надо рости. поделитесь опытом . 

Автор: Bose 22.10.2008, 15:19
Цитата(CTapMex @  22.10.2008,  14:38 Найти цитируемый пост)
1. если я использую делфи без всяких сторонних компонентов, то в debug сборке берутся dcu файлы из папок, указанных в debug dcu files (настройки среды), а в релизе из library paths ?

Звучит логично. 
Меня тоже очень интересует точный ответ на этот вопрос.

Цитата(CTapMex @  22.10.2008,  14:38 Найти цитируемый пост)
2. когда устанавливаешь сторонние компоненты , напрмиер тот же fibplus, они компилируются в обе версии , или только в релиз, или только в дебаг?
т.е. интересует процесс разработки

Сторонние компоненты - когда как. Некоторые поставляются сразу с двумя версиями dcu-шек. А в поставляемых с исходниками, например в JCL можно указать, нужно ли компилировать Debug DCU(Optimization off, debug infromation included). 

 smile 
Если найдёшь точную информацию или хорошую статью по теме, дай мне пожалуйста знать. 

Автор: CTapMex 23.10.2008, 06:55
пока что вот что нашел
Цитата(http://www.delphikingdom.com/asp/answer.asp?IDAnswer=13877)

При включенном Use debug DCU используются DCU стандартных модулей (SysUtils, Forms, Buttons и т. д.), содержащие отладочную информацию. Эти DCU лежат в $(DELPHI)\lib\debug. Соответственно, если опция выключена, используются DCU из $(DELPHI)\lib, не содержащие отладочной информации.

тоже и тут http://dimas-page.narod.ru/MATER/TEACH/COMPIL/

статья по структуре и компиляции проекта http://www.softsl.com/Pagsect-260.html (во многих источниках она есть)

кстати , вот Delphi Project Structure Folder Organisation - Best Practice? ( http://delphi.about.com/od/delphitips2008/qt/project_layout.htm )

больше пока нету.
может имеет смысл задать вопрос на иностранных форумах, но у меня нет   такого знания языка

Автор: CTapMex 23.10.2008, 09:35
Цитата(http://objectmix.com/delphi/402712-debug-vs-release-build.html)


The IDE debugger uses debug information that is compiled into the DCUs
and does not get linked into the executable. This type of
debug information can only be used by the IDE. There are two other
types of debug information available, though. For them you can find two
checkboxes on the Project Options linker page.

TD32 debug information (in the old Turbo Debugger format) is compiled
into the executable if you check that box and it
seriously increases the executable size. No Delphi tool uses this
information but some 3rd-party tools (like profilers and error
reporting tools) can use it to turn code addresses to sensible names.

Remote debug information is intended to be used with the Delphi remote
debugger to debug an application that is running on another machine
with the IDE. This debug information is placed into a separate file
(extension rds if memory serves) that has to be put into the same
folder the executable to debug resides in. This type of debug info can
also be useful if you try to debug a system of several executables in
the IDE, since you can load it for a given module to enable the
debugger to show more than opaque assembly code for the module.


получается, использование опций отключения дебаг информации при компилировании, никак не сказывается на результирующем файле

Автор: Bose 23.10.2008, 12:34
Спасибо, CTapMex
Вот здесь ещё есть http://dn.codegear.com/article/27057(на английском)

Автор: CTapMex 27.10.2008, 07:29
чтобы тема тут не заглохла доконца, вот http://forum.ru-board.com/topic.cgi?forum=33&bm=1&topic=9383&start=840 тут под ником fcdobpiy я задал такой же вопрос. ну и народ привел пару примеров.

Автор: Bose 11.11.2008, 16:51
Те отличия, с которыми я столкнулся:

Debug сборка компилируется с 
отключенной оптимизацией -$O-
включённым флагом Inlcude debug Information -$D+
в качестве первой папки Search передаётся папка {$DELPHI}\Lib\Debug. (потом {$DELPHI}\Lib\ ) (1)

Release сборка компилируется с 
выключённым флагом Inlcude debug Information -$D-
папка {$DELPHI}\Lib\Debug не используется


(1) из-за этого у меня и http://forum.vingrad.ru/forum/topic-234071.html

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)