Почему неустранимая ошибка " LNK1104: не удается открыть файл "C:Program - ... obj '" возникает при компиляции проекта C++ в Visual Studio?

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

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

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

19 ответов


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

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

C:\Program файлы\программное обеспечение sdk\lib\библиотека.Либ!--1-->

в:

" C:\Program файлы\программное обеспечение sdk\lib\библиотека.lib"

где я добавил кавычки.


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

: -1: ошибка: LNK1104: не удается открыть файл 'debug\****.exe'


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

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


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


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


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


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


для проекта сборки (имя проекта - > зависимости сборки - > настройки сборки - > masm (выбран)), настройка Создать Предварительно Обработанный Список Источников to True вызвал проблему и для меня, очистив настройку, исправил ее. VS2013 здесь.


Я сталкиваюсь с той же проблемой, когда компоновщик жалуется на отсутствие основного исполняемого файла. Это произошло во время нашего порта решения для нового Visual Studio 2013. Решение представляет собой разнообразное сочетание управляемых и неуправляемых проектов / кода. Проблема (и исправление) оказалась отсутствующей app.config файл в папке решения. Потребовался день, чтобы понять это: (, поскольку журнал вывода был не очень полезен.


Я проверил все мои настройки в соответствии с этим списком:http://msdn.microsoft.com/en-us/library/ts7eyw4s.aspx#feedback . Это полезно для меня и для моей ситуации, я узнаю, что зависимость ссылок свойств проектов имеет двойную цитату, которой не должно быть.


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

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


Я отвечаю, потому что я не вижу этого конкретного решения, указанного кем-либо еще.

по-видимому, мой антивирус (Ad-Aware) отмечал DLL, от которого зависит один из моих проектов, и удалял его. Даже после исключения каталога, где живет DLL, то же самое поведение продолжалось до тех пор, пока я не перезапустил свой компьютер.


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


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

решение 2:

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

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


в моем случае Я заменил файлы библиотеки математики из предыдущего графического курса игрового движка на GLM. Проблема заключалась в том, что я не добавил их в проект в обозревателе решений Visual Studio (хотя они были в репозитории проекта).


У меня была эта проблема в сочетании с ошибкой LNK2038, после этого в должности для разделения библиотеки DLL выпуска и отладки. В этом процессе я очистил всю папку, в которой находились эти зависимости.

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

надеюсь, этот ответ поможет кому-то нужна.


Я решил ее добавлять an существующий проект to мой решение, который я забыл добавить в первый раз.


у меня была такая же ошибка:

fatal error LNK1104: cannot open file 'GTest.lib;'

Это было вызвано ; в конце. Если у вас есть несколько библиотек, они должны быть разделены пустым пространством (пробел), без запятой или полуколонами!

Так что не используйте ; или что - нибудь еще при перечислении библиотек в свойства проекта >> настройка >> Компоновщик >> вход


У меня была такая же проблема , я просто скопировал код в новый проект и начали строить . Появилась еще одна ошибка. ошибка C4996:' fopen': эта функция или переменная может быть небезопасной. Рассмотрите возможность использования fopen_s вместо

снова решить эту проблему, я добавил свое одно свойство в проект, как показано ниже. Проект - > свойства - > свойство конфигурации - > c / C++ . В этой категории есть определения препроцессора имени Поля Я добавил _CRT_SECURE_NO_WARNINGS это для решения проблемы Надеюсь, это поможет ...

Спасибо