Ошибка LNK1104 не удается открыть файл '; .obj'

Ошибка LNK1104 не удается открыть файл '; .obj' project1 D: \ project1 \ source \ project1 \ project1 \ LINK 1

Я использую Visual Studio 2015 и openframeworks, я новичок в языке C ++.

Мне не удалось найти строку кода, относящуюся к этому файлу.

У кого-нибудь была подобная ошибка или есть какие-нибудь советы по поиску причины этой ошибки?


person Maurice de Koning    schedule 25.12.2015    source источник
comment
Мне не удалось найти строку кода, относящуюся к этому файлу. Это не проблема кода. Я говорю, что похоже, что ваши настройки компоновщика как-то перепутались.   -  person drescherjm    schedule 25.12.2015


Ответы (3)


Процесс сборки состоит из двух основных этапов:

  • компилировать
  • ссылка

На этапе компиляции файлы obj собираются из исходного файла. На этапе связывания эти файлы obj «объединяются», разрешая неразрешенные ссылки и формируя окончательный результат (статическая / динамическая библиотека или исполняемый файл).

Ваша ошибка связана с ошибкой компоновщика, в которой говорится, что один из скомпилированных файлов не может быть найден. Это может произойти, когда:

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

У вас есть другие сообщения об ошибках или предупреждения? Пожалуйста, проверьте, действительно ли вы создаете указанный проект (а также фактический исходный файл). В качестве первого шага вы можете проверить это в Build -> Configuration Manager. Посмотрите на флажок в столбце «Сборка».

person csisy    schedule 25.12.2015
comment
да, это действительно была проблема, спасибо за ее решение - person Maurice de Koning; 09.01.2016

Как вы устанавливаете пути ввода для компоновщика? Для C / C ++ я обнаружил, что для Visual Studio указанное ниже расположение НЕ является правильным способом ссылки на файлы библиотеки на этапе компоновки компилятора (по крайней мере, в версии сообщества 2017). У меня была папка проекта под названием «lib», в которой были все мои файлы .lib. Первоначально я указывал такое значение (что было неверным):

Linker --> General --> Additional Library Directories: $(ProjectDir)lib;%(AdditionalDependencies)

Я получал такие сообщения об ошибках, как:

error LNK1104: cannot open file 'lib.obj'

Я понял, что это было правильным способом указать каталоги библиотеки:

VC++ Directories --> Library Directories

В моем случае мое значение было:

VC++ Directories --> Library Directories: $(ProjectDir)lib;$(LibraryPath)
person C.D.    schedule 20.02.2019

Я создал статическую библиотеку, скажем TempLibrary.lib. Я связывал эту библиотеку со своим приложением и получил указанную выше ошибку в VS2015. Проблема заключалась в том, что я упоминал только название библиотеки и пропустил расширение. то есть я добавил только имя TempLibrary в

Линкер- ›Ввод-› Дополнительные зависимости.

После того как я добавил к имени расширение (.lib), проблема компоновщика была решена. то есть TempLibrary.lib

person Kiran Jeevabharathi    schedule 15.07.2020
comment
Ага - сделал то же самое - person bunkerdive; 07.11.2020