LAZRUS FPC SMARTLINK WIN

Вопросы программирования и использования среды Lazarus.

Модератор: Модераторы

LAZRUS FPC SMARTLINK WIN

Сообщение alaken » 23.02.2010 11:57:59

Приветствую сообщество!
Не придумал ничего более умного для названия темы, чем перечислить относящиеся к моим вопросам слова. (((

Предистория.
Долго работал с Delphi (7/2006/Turbo/2009), было разработано и реализовано несколько проектов которые работают и ими пользуются сотрудники нашей компании.
Недавно узнал о проекте Lazarus и очень им заинтересовался. Решил полностью переселиться на Lazarus так как вижу преимущества Lazarus перед Delphi, IDE немного уступает по удобству, но в остальном одни плюсы ИМХО. Так как система похожая с Delphi заинтересовал тот же вопрос, что и интересовал программируя на Delphi - размер исполнимого файла. Посмотрев, по изучав и опробовава Lazarus, почитав несколько форумов, где затрагиваются вопросы размера исполнимого файла, узнал про директиву компилятора SMARTLINK, также почитав про нее в постах на форуме, результат работы дерективы виден лишь в том случае если модули подключаемые к программе были собраны с этой директивой.
Вопрос первый: Как узнать был ли собран модуль с директивой SMARTLINK, и если он собран не используя директиву как собрать его с ней?
До разбора вопроса размера исполнимого файла, уже было собрался создать проект который бы анализировал бы исходник и создавал к нему модули только с теми переменными и классами и методами в классах, которые необходимы для проекта. Если директива SMARTLINK не то что я думаю, то этот проект начну реализовывать..


На следующий вопрос уже дали удовлетворительный ответ в сообщении от v-t-l и утвердили в сообщении от Mr.Smart
Вопрос второй: В нескольких постах советовали смотреть ключи компилятора fpc.cfg, посмотрев увидел следующее:

# For a release compile with optimizes and strip debuginfo
#IFDEF RELEASE
-O2
-Xs
#WRITE Compiling Release Version
#ENDIF

# For a debug version compile with debuginfo and all codegeneration checks on
#IFDEF DEBUG
-glh
-Crtoi
#WRITE Compiling Debug Version
#ENDIF

Вопрос, где в Lazarus включить режим компиляции Release? если такой есть то извините, ткните носом.



Третий вопос про FPC не созрел... будет позже.
Последний раз редактировалось alaken 23.02.2010 14:25:58, всего редактировалось 2 раз(а).
alaken
постоялец
 
Сообщения: 221
Зарегистрирован: 18.02.2010 09:02:13

Re: LAZRUS FPC SMARTLINK WIN

Сообщение Padre_Mortius » 23.02.2010 12:10:48

если я правильно понял о чем речь, то ответ на второй вопрос: в параметрах проекта нужно убрать ряд галок связанных с отладкой.
У вас нет необходимых прав для просмотра вложений в этом сообщении.
Padre_Mortius
энтузиаст
 
Сообщения: 1265
Зарегистрирован: 29.05.2007 17:38:07
Откуда: Спб

Re: LAZRUS FPC SMARTLINK WIN

Сообщение alaken » 23.02.2010 13:40:32

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


Ну вообще вопрос скорее был в том что бы включить компиляционный шаблон RELEASE, как я понял такого пока не предусмотрено, во многих IDE такое есть...

А так получается самому настраивать параметры компиляции. Понятно.

У вас показан включенный параметр "Вырезать символы из исполнимого файла -Xs", читал про этот параметр, в форуме утверждалось, что он не все вырезает и нужно прогонять утилитой экзешник чтобы полностью удалить. Не замечали Вы такого что компилятор не все строки вырезает?

Кстате, у меня вид окна параметров несколько другой версия Lazarus 0.9.28.2 для Windows, есть новее?
alaken
постоялец
 
Сообщения: 221
Зарегистрирован: 18.02.2010 09:02:13

Re: LAZRUS FPC SMARTLINK WIN

Сообщение v-t-l » 23.02.2010 13:59:07

Можно попробовать написать в .lpr-файле
Код: Выделить всё
{$DEFINE DEBUG}
или
Код: Выделить всё
{$DEFINE RELEASE}

Если не поможет написать в "Проект - Параметры компилятора - Другие - Параметры пользователя"
Код: Выделить всё
-dDEBUG
или
Код: Выделить всё
-dRELEASE
v-t-l
энтузиаст
 
Сообщения: 735
Зарегистрирован: 13.05.2007 16:27:22
Откуда: Belarus

Re: LAZRUS FPC SMARTLINK WIN

Сообщение Mr.Smart » 23.02.2010 14:08:37

v-t-l
Поможет, но только второй вариант :wink:
Mr.Smart
долгожитель
 
Сообщения: 1796
Зарегистрирован: 29.03.2008 01:01:11
Откуда: из леса!

Re: LAZRUS FPC SMARTLINK WIN

Сообщение alaken » 23.02.2010 14:13:49

Спасибо, второй вопрос можно закрывать.

Помогите с первым вопросом.
alaken
постоялец
 
Сообщения: 221
Зарегистрирован: 18.02.2010 09:02:13

Re: LAZRUS FPC SMARTLINK WIN

Сообщение Mr.Smart » 23.02.2010 14:38:30

Почитайте тут
Mr.Smart
долгожитель
 
Сообщения: 1796
Зарегистрирован: 29.03.2008 01:01:11
Откуда: из леса!

Re: LAZRUS FPC SMARTLINK WIN

Сообщение Padre_Mortius » 23.02.2010 15:36:15

2 Mr.Smart
Может тогда сразу и добавите данный пункт к статье?
Padre_Mortius
энтузиаст
 
Сообщения: 1265
Зарегистрирован: 29.05.2007 17:38:07
Откуда: Спб

Re: LAZRUS FPC SMARTLINK WIN

Сообщение alaken » 23.02.2010 15:58:14

Mr.Smart писал(а):Почитайте тут


Спасибо за ссылку, очень позновательная статья.
Узнал про директиву SMARTLINK и ее подводные камни.

Но по существу, как пересобрать модули с данной директивой? можно не подробно, просто объясните принцип.
alaken
постоялец
 
Сообщения: 221
Зарегистрирован: 18.02.2010 09:02:13

Re: LAZRUS FPC SMARTLINK WIN

Сообщение Padre_Mortius » 23.02.2010 16:17:28

alaken писал(а):Кстате, у меня вид окна параметров несколько другой версия Lazarus 0.9.28.2 для Windows, есть новее?

Это скриншот лазаруса из SVN (0.9.29).
Padre_Mortius
энтузиаст
 
Сообщения: 1265
Зарегистрирован: 29.05.2007 17:38:07
Откуда: Спб

Re: LAZRUS FPC SMARTLINK WIN

Сообщение Mr.Smart » 23.02.2010 16:35:53

Padre_Mortius писал(а):2 Mr.Smart
Может тогда сразу и добавите данный пункт к статье?

Мне сейчас лень. Вы просто не представляете как...
А что вам мешает это сделать?

Добавлено спустя 1 минуту 22 секунды:
Тем более ни FPC ни Lazarus под рукой нет, а ставить, читайте выше :oops:
з.ы. я сейчас совершенно другими вещами занимаюсь...
Mr.Smart
долгожитель
 
Сообщения: 1796
Зарегистрирован: 29.03.2008 01:01:11
Откуда: из леса!

Re: LAZRUS FPC SMARTLINK WIN

Сообщение alaken » 24.02.2010 13:52:59

Пробую пересобрать пакеты самим Lazarus'ом
Сервис-> Параметры сборки Lazarus...
В поле Параметры пишу "-Xs -O3 -XX -CX";
Флаг "С пакетами" установлен.
Жму собрать...

в результате получаю Lazarus.exe ~110Мб
похоже что параметры не учитываются, или не эти параметры подразумеваются в этом поле...
так как ключ "-Xs" должен вырезать строки отладочной информации

уточняю "-XX" - это SMARTLINK ON?

тем более что в FPC.cfg
не установлены -glh, отладочные ключи я полностью удалил из конфига а ключи "-Xs -O3 -XX -CX" прописал.

откуда он еще берет параметры???
alaken
постоялец
 
Сообщения: 221
Зарегистрирован: 18.02.2010 09:02:13


Вернуться в Lazarus

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 42

Рейтинг@Mail.ru