Короткое имя файла не так много, но быстрый поиск предполагает, что 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](https://i.stack.imgur.com/YTMZQ.png)
Второе место, где вы можете найти ненужную ссылку на файл, - команда / DEFAULTLIB . Нет конкретного свойства Visual Studio, соответствующего этому параметру, но его можно указать в свойстве командной строки.
Требуемый файл LIB
С другой стороны, если компоновщик читает DFOR.LIB для разрешения какой-либо ссылки, вам необходимо выяснить, какая часть вашего кода вызывает необходимость в DFOR.LIB.
В простом случае ваш код напрямую вызывает функцию, реализованную в DFOR.LIB, которую компоновщик пытается разрешить. Список неразрешенных ссылок компоновщика может помочь вам определить имя функции.
В менее простом случае ваш код может вызывать функцию в каком-то другом библиотечном файле, который в свою очередь вызывает функцию (или функции) в DFOR.LIB.
В обоих случаях параметры компоновщика / VERBOSE и / FORCE могут помочь вам собрать больше данных.
Как только вы узнаете, какая часть вашего кода приводит к необходимости ссылки на DFOR.LIB, вы можете решить, что с этим делать.
- Вы можете переписать код для использования другой функции в пакете, к которому у вас есть доступ
- Возможно, вы найдете более современную (и поддерживаемую) реализацию этой функции - в реализации Intel Visual Fortran, например,
- Вы можете найти лицензионную копию Compaq Visual Fortran (и надеяться, что она по-прежнему работает в современных системах)
- Возможно, вы обнаружите, что Visual Fortran - красная сельдь, а ваша DFOR.LIB - из совершенно другого пакета