Win8.1x64 + Lazarus

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

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

Ответить
VecH
незнакомец
Сообщения: 5
Зарегистрирован: 05.02.2014 18:11:21

Win8.1x64 + Lazarus

Сообщение VecH »

Установлен Windows 8.1 x64
Хочу написать небольшую программку для Win32 (WinXP, Win7 и т.д.)

Мне надо устанавливать 32битную версию или 64битка может компилировать и создавать 32битные приложения?
resident
энтузиаст
Сообщения: 605
Зарегистрирован: 13.03.2013 16:58:51

Сообщение resident »

Аватара пользователя
hinst
энтузиаст
Сообщения: 781
Зарегистрирован: 12.04.2008 18:32:38

Сообщение hinst »

Проще всего сразу два установить, причём версии 1.2 RC 2, так как там поддерживается установка двух копий, а во всех более старых лазарусах настройки в один и тот же каталог записываются, что наверное не хорошо
VecH
незнакомец
Сообщения: 5
Зарегистрирован: 05.02.2014 18:11:21

Сообщение VecH »

Меня больше интересует, я смогу скомпилить приложение Win32 в Lazarus x64
или же надо ставить лазарус 32 для создания приложений 32 бита

установить то я смогу, но трафик не позволяет качать все и пробовать
resident
энтузиаст
Сообщения: 605
Зарегистрирован: 13.03.2013 16:58:51

Сообщение resident »

fpc has everything required to build for windows, both win32 and win64 (wince has some additional requirements though), so no 3rd party files required.
VecH
незнакомец
Сообщения: 5
Зарегистрирован: 05.02.2014 18:11:21

Сообщение VecH »

Все необходимое я так понимаю это Win32 и Win64
Но не указывается можно ли скопилировать софт x32 в дистрибутиве Lazarus x64
больше 14 лет к программированию прикладного по не прикасался, изредка на php кодил мелочи
Аватара пользователя
hinst
энтузиаст
Сообщения: 781
Зарегистрирован: 12.04.2008 18:32:38

Сообщение hinst »

Ну не идёт 32-разрядный FPC с 64-разрядным Лазарусом.
Поставишь 64-разрядный лазарус - получишь 64-разрядный компилятор, и только такой он и будет там всё время, пока не поставишь второй либо кросс.
Если жаль трафика, то можно поставить 32-разрядный лазарус и 64-разрядный FPC к нему, тогда всё будет скачано по одному разу:
Lazarus 32 bit & FreePascal 32 bit + FreePascal 64 bit
Либо второй вариант:
Lazarus 64 bit & FreePascal 64 bit + FreePascal 32 bit
То есть, качаешь сначала 64-разрядный лазарус, с ним идём 64-разрядный компилятор, и ставишь 32-разрядный компилятор к нему.
В любом случае когда будешь ставить второй компилятор, там придётся понастраивать, то есть, пути прописать к нему, это просто но всё равно нужно. А лучше там скопировать, ну в общем ХЗ

Добавлено спустя 2 минуты 7 секунд:
Вообще если что ставить 64-разрядный лазарус смысла особого нет, глюков больше, толку меньше, скачайте лучше пока 32-разрядный, а там если разработка проекта пойдёт, всегда сможете сделать сборку и для 64-разрядной системы позже, если захочется

Добавлено спустя 4 минуты 6 секунд:
VecH писал(а):ли скопилировать софт x32 в дистрибутиве Lazarus x64


нет, пока не поставишь 32-разрядный FPC либо кросскомпилятор с 64 на 32
VecH
незнакомец
Сообщения: 5
Зарегистрирован: 05.02.2014 18:11:21

Сообщение VecH »

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

может есть рекомендации что почитать для создания софта x64 на fpc
подводные камни, баги, нюансы и т.д.
Аватара пользователя
hinst
энтузиаст
Сообщения: 781
Зарегистрирован: 12.04.2008 18:32:38

Сообщение hinst »

Помню как-то видел, что была новость на сайте FPC, там что-то писали вроде того, что "FPC - первый OpenSource компилятор, полностью поддерживающий 64-разрядные процессоры". Уж не знаю что они имели в виду

:arrow: Есть такой баг, на 64-разрядных системах там как-то не правильно обрабатываются исключения, выпадающие из DLL. На англ. форуме читал. То есть, если вызывать функции из DLL то есть риск что исключения будут стрёмно обрабатываться. Сам не сталкивался. Вроде бы этот баг характерный только для FPC 2.6.2, а в тестовом уже исправили
:arrow: Ещё некоторые разные библиотеки плохо дружат с 64-разрядными системами, особенно старые библиотеки, ну это понятное дело, если их не обновляли, особенно с если в библиотеке используется ассемблерная вставка, тогда будет всё очень плохо, так как ассемблерный код для 32-разрядной системы не заработает на 64-разрядной, и придётся думать, что делать. Сам когда-то сталкивался, ещё давно, с тех пор вроде со всеми библиотеками было всё нормально, там AggPas, LNet, fpGUI, PascalScript, Synapse вроде работают. Ну все популярные библиотеки вроде бы обновляют постоянно. В общем... кто знает. RTL уж точно должно работать. Делаю большую программу на Ubuntu 64 bit, до сих пор проблем не было. Во всяком случае из-за разрядности системы проблем не было

Вообще мне представляется что при разработке 64-разрядных приложений на FPC никаких особых подводных камней нет, если из-за разрядности и возникнут какие-нибудь проблемы, то они должны быть легко решаемые. Ну вот только тот баг с исключениями (который вряд ли проявится, так как обычно стараются не бросать исключения в DLL) и ещё старые библиотеки которые авторы не подпилили для 64 bit (RTL, FCL, LCL сюда не относятся). В LCL вроде бы есть небольшие баги связанные с разрядностью

Добавлено спустя 4 минуты 55 секунд:
ещё есть такая деталь, что если в библиотеке для FPC проблема, то я могу иногда сам разобраться, а в библиотеке C++ чёрт ногу сломит, ну это кому как, может кому-то с C++ проще
VecH
незнакомец
Сообщения: 5
Зарегистрирован: 05.02.2014 18:11:21

Сообщение VecH »

Понятно, существенных проблем видимо нет, покрайне мере гугл вывел пару нюансов, но методы обхода существуют или исправлены, что Вами и подтверждается :) это радует

Планирую работу с mysql базами, читаю про компоненты которые очень давно приходилось искать или придумывать костыли, но это уже оффтоп

спасибо за информацию
Ответить