Ошибка LNK1104: не удается открыть файл «DFOR.lib» Visual Studio - PullRequest
0 голосов
/ 14 мая 2018

Работа в Visual Studio 2013 Professional, и я пытался debug старый код из VC ++ 6 Project.При запуске сценариев error:

Ошибка LNK1104: не удается открыть файл 'DFOR.lib' Visual Studio

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

Если вы не могли бы помочь мне найти каталог DF98 (которыйэто то, что другие, кажется, использовали) или помочь мне в противном случае, я был бы очень признателен.

1 Ответ

0 голосов
/ 15 мая 2018

Короткое имя файла не так много, но быстрый поиск предполагает, что DFOR.LIB, возможно, был частью Compaq Visual Fortran в далеком прошлом.

Я не знаком с этим продуктом, но, похоже, в какой-то момент он перешел к Intel. Вы можете попробовать задать свой вопрос на форуме Intel для Intel® Visual Fortran Compiler для Windows * или прочитать некоторые из соответствующих сообщений там уже .

В более общем примечании документация для LNK1104 предлагает некоторое обсуждение возможных причин и решений этой ошибки.

На данный момент вы не должны предполагать, что вам нужно найти DFOR.LIB, вам нужно выяснить, почему компоновщик пытается его открыть.

Ненужный файл LIB

Например, ненужный # прагматический комментарий (lib ...) или ошибочная команда компоновщика в вашей сборке может заставить компоновщик попытаться прочитать DFOR.LIB, даже если он не нужен завершите связывание вашего файла кода.

В этом случае решение будет состоять в том, чтобы удалить (или закомментировать) ненужный оператор #pragma comment (lib ...) или удалить ссылку DFOR.LIB из команды компоновщика и перестроить ваш проект.

В Visual Studio наиболее вероятное место для поиска ненужной ссылки на файл LIB - в Свойства проекта | Линкер | Введите в свойство «Дополнительные зависимости». При изменении этого свойства не забывайте делать это для всех конфигураций и всех платформ (не только для Debug & Win32). Для файла make или других командных компоновщиков входные файлы компоновки перечислены по одному в команде компоновщика без определенного переключателя.

Project Properties | Linker | Input

Второе место, где вы можете найти ненужную ссылку на файл, - команда / DEFAULTLIB . Нет конкретного свойства Visual Studio, соответствующего этому параметру, но его можно указать в свойстве командной строки.

Project Properties | Linker | Command Line

Требуемый файл LIB

С другой стороны, если компоновщик читает DFOR.LIB для разрешения какой-либо ссылки, вам необходимо выяснить, какая часть вашего кода вызывает необходимость в DFOR.LIB.

В простом случае ваш код напрямую вызывает функцию, реализованную в DFOR.LIB, которую компоновщик пытается разрешить. Список неразрешенных ссылок компоновщика может помочь вам определить имя функции.

В менее простом случае ваш код может вызывать функцию в каком-то другом библиотечном файле, который в свою очередь вызывает функцию (или функции) в DFOR.LIB.

В обоих случаях параметры компоновщика / VERBOSE и / FORCE могут помочь вам собрать больше данных.

Как только вы узнаете, какая часть вашего кода приводит к необходимости ссылки на DFOR.LIB, вы можете решить, что с этим делать.

  • Вы можете переписать код для использования другой функции в пакете, к которому у вас есть доступ
  • Возможно, вы найдете более современную (и поддерживаемую) реализацию этой функции - в реализации Intel Visual Fortran, например,
  • Вы можете найти лицензионную копию Compaq Visual Fortran (и надеяться, что она по-прежнему работает в современных системах)
  • Возможно, вы обнаружите, что Visual Fortran - красная сельдь, а ваша DFOR.LIB - из совершенно другого пакета
...