При работе с RAD Studio (Delphi) разработчики часто используют MSBuild для автоматизации сборки проектов. Однако иногда возникают проблемы, связанные с использованием 32-битного компилятора dcc32.exe в 64-битных окружениях. В этой статье мы рассмотрим, как настроить сборку проекта с использованием 64-битной версии компилятора dcc64.exe через MSBuild, а также предложим альтернативные решения.
Проблема: 32-битный компилятор в 64-битной системе
По умолчанию RAD Studio использует dcc32.exe для компиляции проектов, даже в 64-битных системах. Это может привести к:
Ограничениям памяти (32-битные приложения не могут использовать более 4 ГБ ОЗУ).
Проблемам совместимости при работе с 64-битными библиотеками.
Замедлению сборки в некоторых сценариях.
Решение: Использование dcc64.exe с MSBuild
Чтобы задействовать 64-битный компилятор, необходимо внести изменения в файл проекта (.dproj) или передать параметры в MSBuild.
Способ 1: Изменение .dproj файла
Откройте .dproj в текстовом редакторе.
Найдите параметр <DCC_ExeOutput> и измените путь на соответствующий dcc64.exe.
Использование dcc64.exe напрямую
Можно вызывать dcc64.exe вручную, передавая параметры компиляции:
dcc64.exe -B -Q -W MyProject.dpr
Настройка CI/CD (Jenkins, GitLab CI)
В конфигурации сборки можно указать нужный компилятор:
# GitLab CI example
build_win64:
script:
- "C:\Program Files (x86)\Embarcadero\Studio\22.0\bin\rsvars.bat"
- msbuild MyProject.dproj /p:Platform=Win64
Использование FinalBuilder или MSBuild Community Tasks
Эти инструменты позволяют гибко настраивать сборку с выбором компилятора.
Заключение
Переход на 64-битную версию dcc64.exe может улучшить производительность сборки и устранить ограничения памяти. Однако перед внедрением рекомендуется проверить совместимость всех зависимостей проекта. Если у вас есть опыт использования dcc64.exe или альтернативные решения — делитесь в комментариях!
Совет: Всегда проверяйте пути к компилятору в вашей версии RAD Studio, так как они могут отличаться.
// Пример кода на Pascal для проверки разрядности приложения
{$IFDEF WIN64}
Writeln('Это 64-битное приложение');
{$ELSE}
Writeln('Это 32-битное приложение');
{$ENDIF}
Статья описывает методы использования 64-битного компилятора `dcc64.exe` вместо 32-битного `dcc32.exe` при сборке проектов в RAD Studio с помощью MSBuild для повышения производительности и устранения ограничений памяти.
Комментарии и вопросы
Получайте свежие новости и обновления по Object Pascal, Delphi и Lazarus прямо в свой смартфон. Подпишитесь на наш Telegram-канал delphi_kansoftware и будьте в курсе последних тенденций в разработке под Linux, Windows, Android и iOS
Материалы статей собраны из открытых источников, владелец сайта не претендует на авторство. Там где авторство установить не удалось, материал подаётся без имени автора. В случае если Вы считаете, что Ваши права нарушены, пожалуйста, свяжитесь с владельцем сайта.