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

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

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

фатальная ошибка LNK1104: невозможно открыть файл 'C:\Program.obj'

Ответ 1

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

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

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

To:

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

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

Ответ 2

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

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

Ответ 3

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

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

Ответ 4

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

Ответ 5

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

Ответ 6

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

Ответ 7

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

Ответ 8

Для проекта сборки (ProjectName → Build Dependencies → Build Customizations → masm (выбрано)) установка Сгенерировать препроцессорный список источников до True вызвала проблему для меня тоже, очистка установки зафиксировала его. VS2013 здесь.

Ответ 9

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

Ответ 10

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

Ответ 11

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

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

Ответ 12

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

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

Ответ 13

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

Ответ 14

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

Решение 2:

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

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

Ответ 15

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

Ответ 16

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

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

Надейтесь на этот ответ, помогите кому-то в этом нуждаться.

Ответ 17

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

Ответ 18

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

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

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

Поэтому не используйте ; или что-нибудь еще при перечислении библиотек в Project properties >> Configuration Properties >> Linker >> Input

Ответ 19

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

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

Спасибо