Карта сайта Kansoftware
НОВОСТИУСЛУГИРЕШЕНИЯКОНТАКТЫ
KANSoftWare

Использование 64-битной версии dcc32.exe при сборке проекта в RAD Studio с использованием MSBuild

Delphi , ОС и Железо , Процессор

 

Введение

При работе с 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 файла

  1. Откройте .dproj в текстовом редакторе.
  2. Найдите параметр <DCC_ExeOutput> и измените путь на соответствующий dcc64.exe.

Пример:

<PropertyGroup>
  <DCC_ExeOutput>$(BDS)\bin64\dcc64.exe</DCC_ExeOutput>
</PropertyGroup>
  1. Сохраните файл и перезапустите сборку.

Способ 2: Передача параметра в MSBuild

Можно указать компилятор через командную строку:

msbuild MyProject.dproj /p:DCC_ExeOutput="C:\Program Files (x86)\Embarcadero\Studio\22.0\bin64\dcc64.exe"

Способ 3: Использование rsvars.bat

Если у вас настроены переменные окружения через rsvars.bat, можно использовать:

call "C:\Program Files (x86)\Embarcadero\Studio\22.0\bin\rsvars.bat"
msbuild MyProject.dproj /p:Platform=Win64

Альтернативные решения

  1. Использование dcc64.exe напрямую
    Можно вызывать dcc64.exe вручную, передавая параметры компиляции:

dcc64.exe -B -Q -W MyProject.dpr

  1. Настройка 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

  1. Использование 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




Материалы статей собраны из открытых источников, владелец сайта не претендует на авторство. Там где авторство установить не удалось, материал подаётся без имени автора. В случае если Вы считаете, что Ваши права нарушены, пожалуйста, свяжитесь с владельцем сайта.


:: Главная :: Процессор ::


реклама


©KANSoftWare (разработка программного обеспечения, создание программ, создание интерактивных сайтов), 2007
Top.Mail.Ru

Время компиляции файла: 2024-12-22 20:14:06
2025-06-04 07:14:48/0.0056929588317871/0