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

StackOverflow https://stackoverflow.com/questions/133698

  •  02-07-2019
  •  | 
  •  

Вопрос

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

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

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

Это было полезно?

Решение

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

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

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

Для:

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

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

Другие советы

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

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

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

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

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

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

Моя проблема заключалась в пропавшем .lib расширение, я просто ссылался на mylib и ВС решил поискать mylib.obj.

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

Для проекта сборки (имяпроекта -> Зависимости сборки -> Настройки сборки -> masm (выбрано)) настройка Создание списка предварительно Обработанных исходных текстов Для Верно у меня тоже возникла проблема, очистка настройки устранила ее.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'" и никаких номеров строк или чего-то еще.

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

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

Решение 2:

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

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

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

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

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

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

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

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

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

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

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

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

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

Я столкнулся с той же проблемой с "Visual Studio 2013".

LNK1104: cannot open file 'debug\****.exe

Проблема разрешилась после закрытия и повторного запуска Visual Studio.

У меня была такая же проблема, я только что скопировал код в новый проект и начал сборку .Начала приходить какая-то другая ошибка.ошибка C4996:"приоткрыть":Эта функция или переменная может быть небезопасной.Подумайте о том, чтобы вместо этого использовать fopen_s

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

Спасибо

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top