Компиляция x64-x32

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

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

Компиляция x64-x32

Сообщение Voltag » 31.01.2017 19:03:45

Здравствуйте уважаемые жители и посетители форума!

Задача у меня вроде простая, но сам осилить видимо не могу.
У меня 64 разрядная Win10 на которой стоит Лазарус.
Надо мне компиляцию для 32 разрядных операционок семейства Виндовс(к примеру win8/32).

Я чрезвычайно обрадовался когда обнаружил в Параметрах проекта режимы сборки.
(Проект - Параметры проекты - настройка и целевая платформа).
С подозрением, что "халявы не будет", я установил ДРУГОЙ Лазарус(32 разрядный) в соседнюю папку. На всякий случай.
так же поставил себе это(на 64 версию): Кросс-компилятор. lazarus-1.4.0-fpc-2.6.4-cross-x86_64-win64-win32.exe

- Запуск Лазарус 64 разрядный
Если я выставляю в сборке Win32 то получаю:
Для использования компилятора FPC отсутствует файл настройки.
Вероятно компилятор не сможет найти ряд модулей.
Проверьте что FPC установлен правильно.

Я понимаю что он хочет от меня настроек FPС
и по хорошему должен подпихнуть ему FPC от 32 разрядной сборки, но как это сделать?

- Запуск Лазарус 32 разрядный
Далее, если я запускаю Лазарус(32) который я установил со своими настройками(т.е. раздельно с Лазарус(64) ) он мне говорит что(при старте):
Ошибка: отсутствует файл fpc.cfg.
Хотя он там есть: D:\Lazarus_х32\fpc\3.0.0\bin\i386-win32\ (и 'x' английская буква в Lazarus_х32)
Каталоги я все проверил, проставил прямые пути.
Заглянул в сам конфиг, пути там тоже вроде, на мой непрофессиональный взгляд в норме.
При запуске самой среды (игнорировании ошибки) появляется такое же окошко, как и в первом случае.
Цитирую частично: Для использования компилятора FPC отсутствует файл настройки...
что делать?

Я выделил вопросы жирным щрифтом, чтобы они не потерялись. Я подумал, что возможно, эти проблемы из за одного файла конфига которого нет
(или как бы нет), поэтому и объединил посты.

Программы и версии компиляторов(из "Справка - О проекте лазарус"):
64 разрядная IDE ver 1.6.2 FPC 3.0.0
x86_64-win64-win32/win64

32 разрядная IDE ver 1.6.2 FPC 3.0.0
i386-win32-win32/win64

С уважением
Последний раз редактировалось Voltag 31.01.2017 22:44:23, всего редактировалось 1 раз.
Voltag
новенький
 
Сообщения: 29
Зарегистрирован: 02.04.2008 03:49:33

Re: Компиляция x64-x32

Сообщение Deimos » 31.01.2017 21:07:46

Я решаю проблему установкой двух версий и 32 и 64 со своими настройками для каждой. Win 10 - Все работает нормально. Насколько помню, при установке ВТОРОЙ версии при уже установленной установщик предлагает использовать отдельный каталог настроек.

в win 7 тоже все работало нормально.

Я подозреваю, что есть способ кросскомпиляции и даже встречал упоминания на форуме, но решил просто не морочить себе голову )
Deimos
постоялец
 
Сообщения: 169
Зарегистрирован: 17.01.2010 00:31:30

Re: Компиляция x64-x32

Сообщение Voltag » 31.01.2017 22:45:53

Спасибо Deimos за ответ!
Я как раз и установил 32 разрядную версию тоже. Создал отдельный каталог =)
Скорее всего я плохо оформил текст. Прошу прощения, сейчас подправлю.
Voltag
новенький
 
Сообщения: 29
Зарегистрирован: 02.04.2008 03:49:33

Re: Компиляция x64-x32

Сообщение Deimos » 31.01.2017 23:32:07

Voltag писал(а):Скорее всего я плохо оформил текст. Прошу прощения, сейчас подправлю.

Нормально все с текстом и вопрос вполне понятен.

Надеюсь, что подтянутся те, кто объяснит более толково. Не подтянутся - я сам пересмотрю еще раз и помогу.
Deimos
постоялец
 
Сообщения: 169
Зарегистрирован: 17.01.2010 00:31:30

Re: Компиляция x64-x32

Сообщение Снег Север » 01.02.2017 08:46:28

Другого варианта, кроме установки двух отдельных версий для 32 и 64, на данный момент нет.
Аватара пользователя
Снег Север
долгожитель
 
Сообщения: 2995
Зарегистрирован: 27.11.2007 16:14:47

Re: Компиляция x64-x32

Сообщение gvido » 01.02.2017 10:52:26

Добрый день.
Все нормально компилируется 64->32 и 32->64. Я давно так делаю, еще с 1.4 версии лазаруса.
Сейчас стоит lazarus-1
.6.2-fpc-3.0.0-win64 и модуль lazarus-1.6.2-fpc-3.0.0-cross-i386-win32-win64.
В параметрах проекта для x86 - Операционная система (Win32) и целевой семейство процессоров (i386), если лазарус х64.
gvido
постоялец
 
Сообщения: 188
Зарегистрирован: 28.03.2012 11:35:31

Re: Компиляция x64-x32

Сообщение slyubez » 01.02.2017 21:13:51

Я тоже пробовал поставить пакет кросс-компиляции, и ничего не получилось. Приходится довольствоваться двумя разными версиями.
slyubez
постоялец
 
Сообщения: 173
Зарегистрирован: 31.03.2015 08:44:07

Re: Компиляция x64-x32

Сообщение WAYFARER » 02.02.2017 08:58:25

Voltag,
Когда давно, когда писал под Win использовал такой способ.

скачиваем 32х битную версию Lazarus и устанавливаем во временную папку
Теперь нам нужно скопировать из Lazarus 32 в Lazarus64 следующие файлы и папки:

Из папки lazarus32lclunits копируем папку i386-win32 в lazarus64lclunits
Из папки lazarus32fpcx.x.xunits копируем папку i386-win32 в Lazarus64fpc2.x.xunits
Из папки lazarus32fpcx.x.x\bin i386-win32 копируем файл ppc386.exe в Lazarus64fpc2.x.xbinx86_64-win64


На этом можно Lazarus 32 можно удалять.
Теперь в настройках проекта выбираем целевую платформу:
Изображение

Добавлено спустя 12 минут 56 секунд:
viewtopic.php?f=5&t=9283&p=74313&hilit=http%3A%2F%2Flindeberg1987.blogspot.ru#p74313 - вот тут немного дополнено, хотя у меня все недостающее собиралось автоматом.
Аватара пользователя
WAYFARER
энтузиаст
 
Сообщения: 518
Зарегистрирован: 09.10.2009 00:00:04
Откуда: г. Курган

Re: Компиляция x64-x32

Сообщение Voltag » 02.02.2017 18:26:23

Всем спасибо за помощь, особенно WAYFARER
Я решил проблему (так получилось) с другой стороны.

Итак, поскольку у меня ошибки в FPC (проблемы с конфигом) я решил переустановить FPC руками.
Попытка скачать 64 разрядный компилятор не увенчалась успехом (или я плохо искал).
Сперва, я не нашёл в sourceforge. Ссылка вела меня на:
https://sourceforge.net/projects/freepa ... n32/3.0.0/
но мне не нужна кросскомпиляция 32->64

потом я догадался тыкнуть сюда:
http://www.freepascal.org/down/x86_64/win64-austria.var

там написано:
There is no native compiler available for x86_64 Win64. You have to use a cross-compiler.
(перевод свободный):
Нет тебе нативной x86_64 Win64 компиляции! Используй кросскомпилятор.

После этого я скачал 32 разрядный компилятор, скачал кросс 32-64
Установил на место FPC в лазарусе новый FPC. Сперва переименовал старый и на его место установил нативный.
Установил кросскомпиляцию туда-же.
При запуске Лазарус поругался на отсутствие папки sourse в компиляторе.
Переписал папку sourse из старой папки FPC (которую я переименовал вначале).

Всё запустилось. но...
отладка доступна только в режиме 32 разряда
Компиляция 64 делает "exe" но отказывается его запускать.
Этот вариант меня устраивает.

Позже разберусь с нормальной 64 -> 32, поковыряю конфиги, посмотрю пути.
Посмотрю, почему нет нативной x86_64 Win64 компиляции на сайте FPC а в Лазаре она есть.
Может я просто не вижу.

спасибо Kitayets за прекрасный совет по поводу подстановки -$(TargetOS) в пути (привожу ссылку на оригинал).
http://freepascal.ru/forum/viewtopic.ph ... .ru#p74313
Voltag
новенький
 
Сообщения: 29
Зарегистрирован: 02.04.2008 03:49:33


Вернуться в Lazarus

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

Сейчас этот форум просматривают: Google [Bot] и гости: 52

Рейтинг@Mail.ru
cron