Почему при компиляции проекта C ++ в Visual Studio возникает фатальная ошибка «LNK1104: невозможно открыть файл« C: \ Program.obj »»? - PullRequest
110 голосов
/ 25 сентября 2008

Я создал новый проект C ++ в Visual Studio 2008. Код еще не написан; Изменены только настройки проекта.

Когда я компилирую проект, я получаю следующую фатальную ошибку:

фатальная ошибка LNK1104: не удается открыть файл 'C: \ Program.obj'

Ответы [ 20 ]

143 голосов
/ 25 сентября 2008

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

На вкладке Свойства конфигурации -> Компоновщик -> Ввод свойств проекта имеется свойство Дополнительные зависимости . Эта проблема была исправлена ​​путем изменения этого свойства с:

C: \ Program Files \ sofware SDK \ Lib \ Library.lib

Кому:

"C: \ Program Files \ sofware SDK \ Lib \ Library.lib "

Где я добавил цитаты.

59 голосов
/ 13 августа 2014

Это может произойти, если файл все еще работает.

: - 1: ошибка: LNK1104: невозможно открыть файл 'debug \ ****. Exe'

13 голосов
/ 04 февраля 2015

Проблема исчезла после закрытия и повторного открытия Visual Studio. Не знаю, почему возникла проблема, но это может стоить того.

Это было на VS 2013 Ultimate, Windows 8.1.

5 голосов
/ 26 декабря 2015

Проверьте также, что у вас это не включено: Свойства конфигурации -> C / C ++ -> Препроцессор -> Предварительная обработка в файл .

4 голосов
/ 22 декабря 2015

У меня проблема с отсутствующим расширением .lib, я просто связывался с mylib, и VS решил поискать mylib.obj.

4 голосов
/ 26 сентября 2013

У меня была такая же проблема. Она вызвана "," в имени папки с дополнительным путем к библиотеке. Решается путем изменения пути к дополнительной библиотеке.

3 голосов
/ 13 августа 2014

В моем случае это был неверный ориентир. Project ссылался на вывод другого проекта, но последний не выводил файл, в котором искал первый.

1 голос
/ 30 декабря 2016

Решение 1 (для моего случая): перезапустите процесс Windows Explorer (да, файловый менеджер Windows).

Решение 2:

  1. Закрыть Visual Studio. Выход из Windows
  2. Вход в систему, повторное открытие Visual Studio
  3. Сборка как обычно. Теперь он создает и может получить доступ к проблемному файлу.

Я полагаю, что иногда файловая система или тот, кто ее контролирует, теряется с ее разрешениями. Прежде чем перезапустить сеанс Windows, попытался убить процессы зомби msbuild32.exe, перезапустить Visual Studio, не проверять ни одного, даже показывая файл проблемы. Нет проблем с конфигурацией сборки. Это происходит сейчас и потом. Некоторая внутренняя вещь в Windows не исправляется, требуется перезагрузка.

1 голос
/ 07 июня 2016

У меня была такая же проблема, но решение для моего случая не указано в ответах. Моя антивирусная программа (AVG) определила файл MyProg.exe как вирус и поместила его в «хранилище вирусов». Вам нужно проверить это хранилище, и если файл там есть - просто восстановить его. Это помогло мне.

1 голос
/ 19 января 2016

У меня была та же ошибка, только с пакетом Nuget, который я установил (который не только заголовок), а затем попытался удалить.
Что было не так для меня, так это то, что я все еще включал заголовок для пакета, который я только что удалил в одном из моих файлов .cpp (довольно глупо, да).
Я даже удалил ссылку на дополнительные каталоги библиотек в Project -> Properties -> Linker -> General, но, конечно, безрезультатно, так как я все еще пытался ссылаться на несуществующий заголовок.

В данном случае это определенно сбивающее с толку сообщение об ошибке, поскольку имя заголовка было <boost/filesystem.hpp>, но ошибка дала мне "cannot open file 'llibboost_filesystem-vc140-mt-gd-1_59.lib'" и никаких номеров строк или чего-либо еще.

...