«Дублирование» модулей в Delphi по имени, на которое ссылаются компоненты, проблема с компиляцией - PullRequest
2 голосов
/ 20 мая 2009

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

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

Есть ли способ справиться с этим правильно?

Ответы [ 3 ]

8 голосов
/ 20 мая 2009

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

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

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

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

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

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

С уважением, ~ / | / |. Арко

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