Delphi "E2161 Ошибка: RLINK32: Ошибка открытия файла ________. Drf" во время Build All - PullRequest
4 голосов
/ 01 августа 2009

Я пытаюсь решить проблему с набором пакетов , которые, очевидно, имеют проблемы с зависимостью . Иногда во время Build All я получаю эту ошибку:

Delphi "E2161 Ошибка: RLINK32: Ошибка открытия файла ________. Drf"

Что это значит / указывает, и что такое файл "drf"?

Ответы [ 5 ]

4 голосов
/ 01 октября 2009

В дополнение к решению проблемы «не удается найти файл drf» при компиляции статьи , я также натолкнулся на Отчет об ошибке Delphi # 44134 , в котором комментатор упоминает, что проблема заключается в том, что ваши файлы .dpk находятся в том же каталоге, что и ваши файлы .pas, когда этот же каталог находится в пути к библиотеке и включено «перестроить по необходимости».

Таким образом, у вас есть три варианта решения этой проблемы:

  • Отключите «перестроить по мере необходимости». Это, кажется, самое распространенное решение.
  • Поместите файлы вашего пакета (*.dpk, *.dproj) в отдельный каталог, а затем переустановите пакеты. Я сделал это с успехом.
  • Удалите каталог, содержащий ваши файлы .dpk и .pas, из пути к библиотеке. Обратите внимание, что Delphi добавит его снова при определенных обстоятельствах, в том числе при установке / переустановке пакета.
3 голосов
/ 22 сентября 2009

Похоже, эта оказалась главной проблемой / решением.

Откройте все пакеты, для которых у вас есть исходный код, и укажите параметр компиляции: «Восстановить явно» вместо «Восстановить при необходимости».

2 голосов
/ 01 августа 2009

С http://www.delphifaq.com/faq/delphi/delphi_ide/f157.shtml:

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

Независимо от того, что это за файл с множеством подчеркиваний, компоновщик, скорее всего, ищет его в том, что, по его мнению, является временным каталогом (это можно подтвердить с помощью filemon ). Объяснение в DelphiFaq, где виновник ошибочно определил% TEMP%, так же вероятно, как и любая другая причина.

1 голос
/ 01 августа 2009

Хм ... никогда не слышал о них. Я просто искал проект, который вдохновил вопрос, с которым вы связаны, и там нет ничего с расширением "DRF". Проверка здесь не обнаруживает ничего, связанного с Delphi. Но тот факт, что это ошибка компоновщика, а не ошибка компилятора, заставит меня предположить, что первые две буквы обозначают «Delphi Resource».

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

Если вы не найдете ничего, то, вероятно, Delphi получит его где-то в коде, который он компилирует. Попробуйте выполнить поиск grep по запросу "DRF" в вашем дереве каталогов и посмотрите, получится ли что-нибудь.

0 голосов
/ 06 марта 2014

Иногда проблема была в правах доступа к файлу.

Обходной путь был запущен Delphi от имени администратора.

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