Tomsk Sysadmins Forum

Windows => Программирование => Topic started by: vukor on November 23, 2005, 11:39:59

Title: Cборка проекта в bulder 6.0 interprise
Post by: vukor on November 23, 2005, 11:39:59
Не могу собрать проект в данной IDE без отладочной информации.
Нужно, чтобы exe-шник запускался на машине без установленной среды разработки, короче release нужно сделать.
При попытке запуска приложения на машине без установленной IDE пишет, что не найдена билдеровская библиотека.
Подскажите где в настройках нужно покопаться.
Title: Cборка проекта в bulder 6.0 interprise
Post by: stranger on November 23, 2005, 11:46:42
Quote
Не могу собрать проект в данной IDE без отладочной информации.
Нужно, чтобы exe-шник запускался на машине без установленной среды разработки, короче release нужно сделать.
При попытке запуска приложения на машине без установленной IDE пишет, что не найдена билдеровская библиотека.
Подскажите где в настройках нужно покопаться.
[snapback]5598[/snapback]
А не может он без дополнительных библиотек борланда работать - специфика такая. Это вроде отношения к отладочной инфе не имеет. Хотя посморти - там должны быть настройки для рабочего пакета и окончательной сборки.
Насколько я помню для борлондовских проектов нужно в инсталяшку библиотеки дополнительные скидывать, что бы все заработало...
Title: Cборка проекта в bulder 6.0 interprise
Post by: vukor on November 23, 2005, 12:18:34
все заработало.
Короче надо было:
1.в project->options->Compiler выбрать профиль "Release" (чтобы собрать проект без отладочной инфе)

2. в Project->Options..->Packages убрать галочку с "build with runtime packages"

3. в project->options->linker убрать галочку с "Use dynamic RTL"

Вот такие телодвижения. Блин. Под юниксом это все проще реализовано.
Title: Cборка проекта в bulder 6.0 interprise
Post by: stranger on November 23, 2005, 15:29:55
Quote
все заработало.
Короче надо было:
1.в project->options->Compiler выбрать профиль "Release" (чтобы собрать проект без отладочной инфе)

2. в Project->Options..->Packages убрать галочку с "build with runtime packages"

3. в project->options->linker убрать галочку с "Use dynamic RTL"

Вот такие телодвижения. Блин. Под юниксом это все проще реализовано.
[snapback]5605[/snapback]
Ну ты просто статический пакет собрал... Размер у него явно теперь немаленький...
Title: Cборка проекта в bulder 6.0 interprise
Post by: vukor on November 23, 2005, 15:56:57
Quote
Ну ты просто статический пакет собрал... Размер у него явно теперь немаленький...
[snapback]5610[/snapback]
Это точно.
))
Title: Cборка проекта в bulder 6.0 interprise
Post by: stranger on November 23, 2005, 16:36:19
Quote
Это точно.
))
[snapback]5613[/snapback]
Так, что лучше вычисли какие библиотеки нужны и в инсталяшку вгони...
Где-то у борланда дока по этому поводу есть...
Title: Cборка проекта в bulder 6.0 interprise
Post by: Victor Snezhko on November 23, 2005, 20:36:10
Quote
Так, что лучше вычисли какие библиотеки нужны и в инсталяшку вгони...
Где-то у борланда дока по этому поводу есть...
[snapback]5615[/snapback]
насколько я помню по 3 или 4 билдеру (давно это было), там весь RTL и
основные компоненты были собраны в одну толстую библиотеку, и толку
от её выделения в отдельный файл будет мало.
Title: Cборка проекта в bulder 6.0 interprise
Post by: stranger on November 23, 2005, 23:40:06
Quote
насколько я помню по 3 или 4 билдеру (давно это было), там весь RTL и
основные компоненты были собраны в одну толстую библиотеку, и толку
от её выделения в отдельный файл будет мало.
[snapback]5621[/snapback]
Это как сказать - насколько я помню, все основные функции вызываются через fastcall. Это похоже на inline по принципу действия (хотя тут я не уверен) и при статической сборке - объем программы может быть больше, чем  с динамической библиотекой, хотя не всегда...
Title: Cборка проекта в bulder 6.0 interprise
Post by: Victor Snezhko on November 24, 2005, 00:12:20
Quote
Это как сказать - насколько я помню, все основные функции вызываются через fastcall. Это похоже на inline по принципу действия (хотя тут я не уверен) и при статической сборке - объем программы может быть больше, чем  с динамической библиотекой, хотя не всегда...
[snapback]5624[/snapback]
fastcall - это передача параметров через регистры,
inline - подстановка тела вызываемой процедуры вместо выполнения вызова.

да, там когда-то действительно был fastcall (может и сейчас так)
он должен влиять слабо - один хрен надо или в регистры параметры
запихнуть, или в стек - и там и там код.

и это... не должно там, имхо, сильно инлайниться... и без этого библиотека жирная.
а вообще inline - дело очень тёмное... рекомендую статейку товарища Herb Sutter:
http://www.cuj.com/documents/s=8906/cujexp...tter/sutter.htm (http://www.cuj.com/documents/s=8906/cujexp0311sutter/sutter.htm)

P.S.: никогда не понимал, зачем нужен билдер...
Title: Cборка проекта в bulder 6.0 interprise
Post by: stranger on November 24, 2005, 01:20:23
Quote
fastcall - это передача параметров через регистры,
inline - подстановка тела вызываемой процедуры вместо выполнения вызова.

да, там когда-то действительно был fastcall (может и сейчас так)
он должен влиять слабо - один хрен надо или в регистры параметры
запихнуть, или в стек - и там и там код.

и это... не должно там, имхо, сильно инлайниться... и без этого библиотека жирная.
а вообще inline - дело очень тёмное... рекомендую статейку товарища Herb Sutter:
http://www.cuj.com/documents/s=8906/cujexp...tter/sutter.htm (http://www.cuj.com/documents/s=8906/cujexp0311sutter/sutter.htm)

P.S.: никогда не понимал, зачем нужен билдер...
[snapback]5625[/snapback]
Спасибо за ссылку, что такое inline я знаю. Я просто был не уверен, что такое fastcall, как начал читать пост - сразу вспомнил. С борландом я работал мало...

А по поводу зачем нужен борланд... Хм... Вопрос конечно интересный. Скорее всего для того, что бы быстрее разрабатывать приложения не вдаваясь очень глубоко в программирование интерфейса. Да и кроме того он упрощает разработку... Ведь не зря мелкософт новую IDE по принципу борланда состряпал в соем .net