Delphi - поиск пути к модулю, который компилятор не может найти по пути по умолчанию
Я скачал компонент, в котором много пакетов, затем установил все пакеты времени разработки и сгенерировал все остальные файлы dcu. Мне нужно назначать его путь в пути поиска Delphi каждый раз, когда я создаю новое приложение. Есть ли способ назначить свой путь пути поиска компилятора Delphi один раз, и все приложения получат доступ к этим модулям, так что мне не нужно каждый раз вручную устанавливать путь для нового приложения.
2 ответа
Если вы хотите, чтобы какой-либо компонент автоматически был доступен для каждого нового проекта, вам нужно изменить параметры Delphi IDE по умолчанию - в частности, пути расположения - так, чтобы Delphi IDE знала, где найти нужные файлы.
Вы делаете это, зайдя в меню Сервис -> Параметры. Затем в TreeView, который используется для разделения параметров на несколько категорий, вы выбираете Параметры среды -> Параметры Delphi -> Библиотека.
В правой части окна у вас теперь будут разные опции относительно путей к библиотекам и исходным файлам.
Чтобы Delphi мог найти необходимые предварительно скомпилированные модули вашего компонента, вам нужно добавить папку, в которой они находятся, в путь к библиотеке.
Чтобы Delphi мог находить исходные файлы вашего компонента, вам нужно добавить папку, в которой они находятся, в путь просмотра.
Вы можете прочитать более подробную информацию об этих настройках в документации Delphi, которая также доступна онлайн здесь: http://docwiki.embarcadero.com/RADStudio/XE6/en/Library
Обратите внимание, что если у вас нет Delphi XE6, но в одной из предыдущих версий XE просто измените URL веб-страницы, заменив "XE6" на тот, который у вас есть.
РЕДАКТИРОВАТЬ: я отредактировал свой ответ, чтобы предоставить более конкретную информацию. Старый пост ниже:
Если вы попали в Инструменты -> Параметры (или это Параметры окружающей среды в последних версиях), вы можете установить параметры по умолчанию для Delphi IDE. Эти параметры также включают параметры пути по умолчанию, которые будут автоматически использоваться во всех новых проектах.
Для этого я должен иметь папку "Lib2", которую я использую в качестве выходного каталога модуля всякий раз, когда я компилирую / устанавливаю компоненты - я позволяю компонентам (я имею в виду их исходные файлы и т. Д.) Быть установленными там, где они хотят).
(Я называю это "Lib2", потому что традиционно Delphi помещал свои собственные DCU в папку с именем "Lib", и помещая все сторонние в отдельную папку, что исключало необходимость переустановки Delphi, если моя установка попал в беспорядок.)
Если вы сделаете это, все, что вам нужно сделать для новых проектов, это включить путь к этой папке в путь поиска проекта и установить его в качестве пути поиска по умолчанию.
Способ сделать это зависит от версии Delphi - в эпоху D7 нужно было просто поставить флажок "По умолчанию" на вкладке "Каталоги / Условия" в Project | Опции. Единственная незначительная проблема заключается в том, что иногда компоненту нужен файл ресурсов; если компилятор жалуется на это, просто скопируйте его туда вручную.
В XE4 есть несколько способов заставить Delphi найти скомпилированные DCU, которые вы отправили в Lib2 или как хотите, чтобы это называть:
Кажется, что самое простое - сделать то, что предлагает другой ответ, а именно добавить путь Lib2 в список путей к библиотекам в разделе Tools | Опции. Затем компилятор будет использовать DCU, которые он там находит, без необходимости находить их источники, что, как правило, хорошо (см. Раздел "кстати" ниже).
Второй способ заключается в создании проекта "Набор параметров" (подробности о том, чем они являются и как его создать, см. В OLH, а затем отредактируйте его (снова см. OLH), чтобы включить Lib2 в список путей поиска. После этого Вы можете применить этот набор опций к любому подходящему проекту. Может быть способ автоматически применить ваш набор опций к новым проектам, но мне пока не удалось его найти. В любом случае...
Третий способ - добавить проект с Lib2 среди путей поиска в репозиторий Delphi, а затем создать новые проекты, в которых вы хотите использовать содержимое Lib2 из этой записи в репозитории.
Кстати, есть важный практический момент, когда сторонние библиотеки и любые из ваших собственных стандартных библиотек выводят свои DCU на ваш Lib2 или эквивалентный. Поскольку компилятор может найти там скомпилированные DCU, он не должен быть в состоянии найти исходный код этих библиотек, чтобы иметь возможность компилировать ваш проект. Таким образом, изоляция скомпилированных DCU помогает избежать ужасного сообщения об ошибке "модуль x был скомпилирован с другой версией y" (y обычно представлял собой bpl), который на протяжении многих лет вызывал столько криков о помощи в группах новостей Delphi.