Почему возникает фатальная ошибка “LNK1104:не удается открыть файл "C:\Program.obj"” возникает при компиляции проекта на C ++ в Visual Studio?
-
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:
- Закройте Visual Studio.Выход из системы Windows
- Войдите в систему, снова откройте Visual Studio
- Стройте как обычно.Теперь он создается и может получить доступ к проблемному файлу.
Я предполагаю, что иногда файловая система или тот, кто ею управляет, теряется из-за своих разрешений.Перед перезапуском сеанса 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 это, чтобы решить проблему Надеюсь, это поможет...
Спасибо