Компиляция x64-x32
Модератор: Модераторы
Компиляция x64-x32
Здравствуйте уважаемые жители и посетители форума!
Задача у меня вроде простая, но сам осилить видимо не могу.
У меня 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
С уважением
Задача у меня вроде простая, но сам осилить видимо не могу.
У меня 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 21:44:23, всего редактировалось 1 раз.
Я решаю проблему установкой двух версий и 32 и 64 со своими настройками для каждой. Win 10 - Все работает нормально. Насколько помню, при установке ВТОРОЙ версии при уже установленной установщик предлагает использовать отдельный каталог настроек.
в win 7 тоже все работало нормально.
Я подозреваю, что есть способ кросскомпиляции и даже встречал упоминания на форуме, но решил просто не морочить себе голову )
в win 7 тоже все работало нормально.
Я подозреваю, что есть способ кросскомпиляции и даже встречал упоминания на форуме, но решил просто не морочить себе голову )
Спасибо Deimos за ответ!
Я как раз и установил 32 разрядную версию тоже. Создал отдельный каталог =)
Скорее всего я плохо оформил текст. Прошу прощения, сейчас подправлю.
Я как раз и установил 32 разрядную версию тоже. Создал отдельный каталог =)
Скорее всего я плохо оформил текст. Прошу прощения, сейчас подправлю.
Voltag писал(а):Скорее всего я плохо оформил текст. Прошу прощения, сейчас подправлю.
Нормально все с текстом и вопрос вполне понятен.
Надеюсь, что подтянутся те, кто объяснит более толково. Не подтянутся - я сам пересмотрю еще раз и помогу.
- Снег Север
- долгожитель
- Сообщения: 3071
- Зарегистрирован: 27.11.2007 15:14:47
- Контактная информация:
Другого варианта, кроме установки двух отдельных версий для 32 и 64, на данный момент нет.
Добрый день.
Все нормально компилируется 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.
Все нормально компилируется 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.
Я тоже пробовал поставить пакет кросс-компиляции, и ничего не получилось. Приходится довольствоваться двумя разными версиями.
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 - вот тут немного дополнено, хотя у меня все недостающее собиралось автоматом.
Когда давно, когда писал под 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
Я решил проблему (так получилось) с другой стороны.
Итак, поскольку у меня ошибки в 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
Я решил проблему (так получилось) с другой стороны.
Итак, поскольку у меня ошибки в 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
