[Решено] Не работает компиляция под Win32 из Win64

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

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

Ответить
artem78
новенький
Сообщения: 50
Зарегистрирован: 09.08.2015 17:52:24

[Решено] Не работает компиляция под Win32 из Win64

Сообщение artem78 »

Доброго времени суток!

Сейчас имею: Windows 7 64bit, Lazarus 1.6 64bit, FPC 3.0.0 64bit. Возникла необходимость собрать один из проектов под Windows 32bit. Как и было описано в данной инструкции установил дополнение для кросскомпиляции lazarus-1.6.0-fpc-3.0.0-cross-x86_64-win64-win32.exe, в настройках проекта выставил целевую операционную систему - Win32 и семейство процессоров - i386 для Release и Debug сборок. Насколько я понял, путь к компилятору менять не нужно.

При попытки скомпилировать проект выходит вот такая ошибка:
Error: ppc386.exe can't be executed, error message: Failed to execute ""ppc386.exe" -Twin32 -MObjFPC -Scghi -O1 -g -gl -l -vewnhibq -FuF:\Programms\lazarus\packager\registration\ -FUF:\Programms\lazarus\packager\units\i386-win32\ fcllaz.pas


Текущие настройки проекта и компилятора:

20210806_211310.png

20210806_211336.png

20210806_211345.png
У вас нет необходимых прав для просмотра вложений в этом сообщении.
Последний раз редактировалось artem78 07.08.2021 11:16:15, всего редактировалось 1 раз.
Seenkao
энтузиаст
Сообщения: 578
Зарегистрирован: 01.04.2020 02:37:12
Контактная информация:

Сообщение Seenkao »

artem78 писал(а):ppc386.exe

это и есть проблема. Должен использоваться FPC.exe.

Лично я прописываю нужные компиляторы в самом Lazarus.

В данном случае не знаю, может быть в файле проекта *.lpi заменить имя ppc386.exe на fpc.exe?! (но если собран обратный компилятор, обычно наоборот собирают из 32-х битного 64-битную версию).
Vadim
долгожитель
Сообщения: 4112
Зарегистрирован: 05.10.2006 08:52:59
Откуда: Красноярск

Сообщение Vadim »

Я бы, чтоб не заморачиваться с кросскомпиляцией, просто поставил бы Lazarus 32 бита в отдельный каталог. Тогда не надо чесать репу, выставляя предварительно многочисленные опции. Да и практически отсутствует опасность чего-либо забыть или перепутать. У Вас ведь в коде нет ужасающего кол-ва <IFDEF> проверящих, это код 64 или 32? :-)
Аватара пользователя
Снег Север
долгожитель
Сообщения: 3071
Зарегистрирован: 27.11.2007 15:14:47
Контактная информация:

Сообщение Снег Север »

Vadim, именно. Я тоже так делаю.
artem78
новенький
Сообщения: 50
Зарегистрирован: 09.08.2015 17:52:24

Сообщение artem78 »

Кстати ещё забыл упомянуть, что при открытии проекта выскакивает такая ошибка:

20210807_095821.png
У вас нет необходимых прав для просмотра вложений в этом сообщении.
Alex2013
долгожитель
Сообщения: 3230
Зарегистрирован: 03.04.2013 11:59:44

Сообщение Alex2013 »

Снег Север писал(а):Vadim, именно. Я тоже так делаю.

Да это самый надежный способ .
Хотя недавно собирал старый проект (кажется старую версию демки от движка "Акула") в новом лазарусе и с удивлением обнаружил, что проект собрался в режиме 32 бита без всякого вмешательства с моей стороны. :idea:
Последний раз редактировалось Alex2013 07.08.2021 15:43:18, всего редактировалось 1 раз.
artem78
новенький
Сообщения: 50
Зарегистрирован: 09.08.2015 17:52:24

Сообщение artem78 »

Vadim писал(а):просто поставил бы Lazarus 32 бита в отдельный каталог


Спасибо за совет! Так и сделал и теперь 32бита компилируется без проблем.
Ответить