“Дублирующие” модули в Delphi по имени, на которые ссылаются компоненты, проблема с компиляцией

StackOverflow https://stackoverflow.com/questions/887435

  •  23-08-2019
  •  | 
  •  

Вопрос

Мы используем несколько пакетов компонентов от разных поставщиков, и у двух из них есть модуль "regexp.pas", доступный внутри их структуры каталогов.

Проблема теперь в том, что независимо от порядка, в котором мы их компилируем, один из них жалуется на то, что модуль компилируется с неправильной версией различных других модулей.

Есть ли какой-нибудь способ справиться с этим правильно?

Это было полезно?

Решение

  1. Вы должны убедиться, что у вас есть только одна версия этого устройства
  2. Удалите все dcu (обоих поставщиков), чтобы принудительно скомпилировать все исходные файлы.
  3. Полностью удалите пакеты 2 поставщика (убедитесь, что все следы каждого из них удалены повсюду).
  4. Перекомпилируйте и установите по одному за раз.

Другие советы

Никакие два модуля не могут иметь одинаковое имя в любом полностью связанном и загруженном исполняемом файле Delphi, независимо от того, связаны ли они статически или динамически через пакеты.Как вы пришли к выводу, вам придется переименовать тот или иной вариант.

Вы можете использовать это обходное решение.

Как уже говорилось, вы не можете загрузить оба пакета поставщика в IDE вместе.

Однако, если они вам нужны по одному за раз, вы можете запустите два разных профиля IDE используя "-р" переключатель командной строки, присваивающий каждому профилю пользовательское имя.Затем вы могли бы запустить Delphi, используя первый профиль, и установить первый из двух "конфликтующих" пакетов, закрыть IDE и запустить Delphi со вторым профилем, а затем установить другой пакет.

Создайте ярлык для каждого профиля, а затем запустите Delphi, выбрав профиль, который загружает пакет, необходимый для поддержки конкретного проекта.

С уважением, ~/|/|arco.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top