LAZRUS FPC SMARTLINK WIN
Модератор: Модераторы
LAZRUS FPC SMARTLINK WIN
Приветствую сообщество!
Не придумал ничего более умного для названия темы, чем перечислить относящиеся к моим вопросам слова. (((
Предистория.
Долго работал с 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 не созрел... будет позже.
Не придумал ничего более умного для названия темы, чем перечислить относящиеся к моим вопросам слова. (((
Предистория.
Долго работал с 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 13:25:58, всего редактировалось 2 раза.
-
Padre_Mortius
- энтузиаст
- Сообщения: 1265
- Зарегистрирован: 29.05.2007 17:38:07
- Откуда: Спб
если я правильно понял о чем речь, то ответ на второй вопрос: в параметрах проекта нужно убрать ряд галок связанных с отладкой.
У вас нет необходимых прав для просмотра вложений в этом сообщении.
Padre_Mortius писал(а):если я правильно понял о чем речь, то ответ на второй вопрос: в параметрах проекта нужно убрать ряд галок связанных с отладкой.
Ну вообще вопрос скорее был в том что бы включить компиляционный шаблон RELEASE, как я понял такого пока не предусмотрено, во многих IDE такое есть...
А так получается самому настраивать параметры компиляции. Понятно.
У вас показан включенный параметр "Вырезать символы из исполнимого файла -Xs", читал про этот параметр, в форуме утверждалось, что он не все вырезает и нужно прогонять утилитой экзешник чтобы полностью удалить. Не замечали Вы такого что компилятор не все строки вырезает?
Кстате, у меня вид окна параметров несколько другой версия Lazarus 0.9.28.2 для Windows, есть новее?
Можно попробовать написать в .lpr-файле
или
Если не поможет написать в "Проект - Параметры компилятора - Другие - Параметры пользователя"
или
Код: Выделить всё
{$DEFINE DEBUG}Код: Выделить всё
{$DEFINE RELEASE}Если не поможет написать в "Проект - Параметры компилятора - Другие - Параметры пользователя"
Код: Выделить всё
-dDEBUGКод: Выделить всё
-dRELEASEv-t-l
Поможет, но только второй вариант
Поможет, но только второй вариант
Спасибо, второй вопрос можно закрывать.
Помогите с первым вопросом.
Помогите с первым вопросом.
Почитайте тут
-
Padre_Mortius
- энтузиаст
- Сообщения: 1265
- Зарегистрирован: 29.05.2007 17:38:07
- Откуда: Спб
2 Mr.Smart
Может тогда сразу и добавите данный пункт к статье?
Может тогда сразу и добавите данный пункт к статье?
Mr.Smart писал(а):Почитайте тут
Спасибо за ссылку, очень позновательная статья.
Узнал про директиву SMARTLINK и ее подводные камни.
Но по существу, как пересобрать модули с данной директивой? можно не подробно, просто объясните принцип.
-
Padre_Mortius
- энтузиаст
- Сообщения: 1265
- Зарегистрирован: 29.05.2007 17:38:07
- Откуда: Спб
alaken писал(а):Кстате, у меня вид окна параметров несколько другой версия Lazarus 0.9.28.2 для Windows, есть новее?
Это скриншот лазаруса из SVN (0.9.29).
Padre_Mortius писал(а):2 Mr.Smart
Может тогда сразу и добавите данный пункт к статье?
Мне сейчас лень. Вы просто не представляете как...
А что вам мешает это сделать?
Добавлено спустя 1 минуту 22 секунды:
Тем более ни FPC ни Lazarus под рукой нет, а ставить, читайте выше
з.ы. я сейчас совершенно другими вещами занимаюсь...
Пробую пересобрать пакеты самим Lazarus'ом
Сервис-> Параметры сборки Lazarus...
В поле Параметры пишу "-Xs -O3 -XX -CX";
Флаг "С пакетами" установлен.
Жму собрать...
в результате получаю Lazarus.exe ~110Мб
похоже что параметры не учитываются, или не эти параметры подразумеваются в этом поле...
так как ключ "-Xs" должен вырезать строки отладочной информации
уточняю "-XX" - это SMARTLINK ON?
тем более что в FPC.cfg
не установлены -glh, отладочные ключи я полностью удалил из конфига а ключи "-Xs -O3 -XX -CX" прописал.
откуда он еще берет параметры???
Сервис-> Параметры сборки Lazarus...
В поле Параметры пишу "-Xs -O3 -XX -CX";
Флаг "С пакетами" установлен.
Жму собрать...
в результате получаю Lazarus.exe ~110Мб
похоже что параметры не учитываются, или не эти параметры подразумеваются в этом поле...
так как ключ "-Xs" должен вырезать строки отладочной информации
уточняю "-XX" - это SMARTLINK ON?
тем более что в FPC.cfg
не установлены -glh, отладочные ключи я полностью удалил из конфига а ключи "-Xs -O3 -XX -CX" прописал.
откуда он еще берет параметры???
