Lnk1104 не удается открыть файл exe
Visual Studio 2012 — ошибка LNK1104: не удается открыть файл ‘glew32.lib’
У меня проблемы с компиляцией базовой программы openGL на VS 2012. Я получаю ошибку сборки после компиляции, давая мне:
1>LINK : fatal error LNK1104: cannot open file 'glew32.lib'
Я следовал инструкциям, данным мне в документации для GLEW.
В вашем проекте OpenGL откройте «Проект» -> «Свойства» -> «Свойства конфигурации» -> «Компоновщик» -> «Ввод» -> «Дополнительные зависимости» -> добавить glew32.lib.
Также вы должны включить #include в свои источники; Для этого добавьте путь к вашей папке glew: Проект -> Свойства -> Свойства конфигурации -> Общие -> Каталоги VC ++ -> Включить каталоги и каталоги библиотек;
Вкладка C / C ++ -> Общие -> Дополнительные каталоги включения — Добавьте туда папку lib
Я также добавил glew32.dll в папку Debug в папке проекта вместе с исполняемым файлом. Пока я продолжаю получать эту ошибку.
Если вам нужно более подробное разъяснение шагов, которые я сделал, пожалуйста, не стесняйтесь спрашивать
15
Честно говоря, нет реальной пользы от использования DLL-версии glew (если не считать уменьшенного размера исполняемого файла, но это вряд ли имеет значение на современных ПК с Windows).
Это не значит, что вы можете просто вставить новую версию DLL в свое приложение и использовать расширения, которые вы никогда раньше не использовали.
Точно так же исправления ошибок настолько редки / не нужны в библиотеке, которая в основном просто анализирует спецификацию расширения.файлы, которые используют DLL как средство исправления ошибок загрузки расширений в поставляемом программном обеспечении, также не практичны. Статическая ссылка на glew (это означает glew32s.lib) имеет гораздо больше смысла в долгосрочной перспективе.
Библиотека статических ссылок также более переносима в Windows, она будет работать с MSVC и MinGW (тогда как библиотека DLL работает только с MSVC). Ссылка против glew32s и поместите это в любой каталог, который вы решили использовать для дополнительных библиотечных зависимостей.
Вот пример конфигурации решения для проекта, который я написал, который использует glew. Я установил соглашение для этого конкретного программного обеспечения, где зависимости времени компиляции хранятся в platform/, Таким образом, у меня есть glew32s.lib (32-разрядный) и glew64s.lib (64-разрядный) в ./Epsilon/platform/OpenGL/glew{32|64}s.lib
15
Это случилось со мной в этой ситуации, я очищаю решение и собираю его снова, затем возникает много ошибок, таких как LNK1104.
После попытки перезапустить IIS я успешно строю решение без ошибок LNK1104. Я не знаю почему, но перезапуск IIS занимает гораздо больше времени, чем обычно, поэтому я предполагаю, что что-то используется другим рабочим процессом IIS.
Просто сделайте снимок, чтобы увидеть, происходит ли эта магия на вас.
2
Шаги по использованию классов из другого проекта (добавление ошибок компоновщика заголовка и решателя)
Чтобы иметь возможность добавить заголовок из другого проекта, сначала перейдите на «Свойства> c ++> Общие> Дополнительные каталоги включения» и добавьте каталог, который содержит заголовок. Теперь вы сможете добавить заголовок класса из другого проекта, но запуск проекта все равно вызовет ошибки компоновщика.
добавлять __declspec (dllexport) перед классом, который вы используете для другого проекта. Это можно добавить в заголовочный файл этого класса.
Это должно быть добавлено непосредственно перед именем функции, переменной или класса. Теперь вы получите файл lib. (если не в том месте, вы можете получить это предупреждение: https://msdn.microsoft.
com/en-us/library/eehkcz60.aspx)
«Свойства> Linker> Дополнительные каталоги библиотеки». Укажите местоположение создаваемого файла lib.
«Свойства> Линкер> Ввод> Дополнительные зависимости»: Добавьте имя файла lib.
2
Это похоже на то, что библиотека была указана как зависимость, но компоновщик / дополнительные пути поиска не были установлены для включения каталога, в котором расположена библиотека.
Это может помочь.
1
Этот вопрос старый и помечен как решенный, но у меня были похожие симптомы проблемы с совершенно другим решением. Так что на случай, если кто-то еще споткнется здесь:
Оказалось, что, поскольку у меня было 2 проекта под одним решением (dll и exe), порядок построения был смешанным (из окна вывода):
1> Rebuilding project1..2> Rebuilding project1..1> file1.cpp2> file1.cpp
и так далее. Судя по скопированному сообщению, у вас тоже есть несколько проектов под одним решением. Один проект искал файл * .lib, который другая сборка еще не создала.Решение:
Щелкните правой кнопкой мыши по «основному» проекту -> Зависимости сборки -> Зависимости проекта .. -> Отметьте, от какого проекта зависит основной.
1
Источник: https://web-answers.ru/c/visual-studio-2012-oshibka-lnk1104-ne-udaetsja.html
Почему фатальная ошибка
Я создал новый проект C++ в Visual Studio 2008. Код еще не написан, изменены только настройки проекта.
когда я компилирую проект, я получаю следующую фатальную ошибку:
фатальная ошибка LNK1104: не удается открыть файл 'C:Program.obj'
259 19
эта конкретная проблема вызвана указанием зависимости для файла lib, который имел пробелы в своем пути. Путь должен быть окружен кавычками для правильной компиляции проекта.
на Свойства Конфигурации -> Компоновщик -> Ввод вкладка свойств проекта, есть Дополнительные Зависимости собственность. Эта проблема была исправлена путем изменения этого свойства:
C:\Program файлы\программное обеспечение sdk\lib \ библиотека.Либ
To:
” C:\Program файлы\программное обеспечение sdk\lib \ библиотека.lib”
где я добавил кавычки.
Это может произойти, если файл все еще работает.
:-1: ошибка: LNK1104: не удается открыть файл ' debug\****.exe'
проблема ушла для меня после закрытия и повторного открытия Visual Studio. Не знаю, почему возникла проблема, но это может быть стоит попробовать.
Это было на VS 2013 Ultimate, Windows 8.1.
проверьте также, что вы не включили это: свойства конфигурации -> C / C++ – > препроцессор -> предварительная обработка файла.
У меня было то же самое problem.It вызвано символом”, ” в имени папки дополнительной библиотеки path.It решается путем изменения дополнительного пути к библиотеке.
моя проблема была отсутствует .lib расширение, я просто связывал против mylib и ВС решил искать mylib.obj.в моем случае это был вопрос неправильной ссылки. Проект ссылался на вывод другого проекта, но последний не выводил файл, где первый искал.
для сборки проекта (название проекта -> построение зависимостей -> сборки настройки -> компилятор MASM (некоторые)), задание Создать Предварительно Обработанный Список Источников до True вызвал проблему и для меня, очистив настройку, исправил ее. VS2013 здесь.
Я сталкиваюсь с той же проблемой, когда компоновщик жалуется на отсутствие основного исполняемого файла. Это произошло во время нашего порта решения для нового Visual Studio 2013.
Решение представляет собой разнообразное сочетание управляемых и неуправляемых проектов / кода. Проблема (и исправить) в конечном итоге отсутствует приложение.конфигурации файл в папке решения.
Потребовался день, чтобы понять это: (, поскольку выходной журнал был не очень полезен.
у меня была та же ошибка, только с пакетом Nuget, который я установил (тот, который не является только заголовком), а затем попытался удалить.
Что было неправильно для меня, так это то, что я все еще включал заголовок для пакета, который я только что удалил в одном из моих .cpp файлы (довольно глупо, да).
Я даже удалил дополнительную ссылку на каталоги библиотеки в Project -> Properties -> Linker -> General, но, конечно, безрезультатно, так как я все еще пытался ссылаться на несуществующий заголовок.
определенно сбивает с толку сообщение об ошибке в этом случае, так как имя заголовка но ошибка дала мне “cannot open file 'llibboost_filesystem-vc140-mt-gd-1_59.lib'” и никаких номеров строк или чего-то еще.
Я отвечаю, потому что я не вижу это конкретное решение, перечисленное кем-либо еще.
по-видимому, мой антивирус (Ad-Aware) отмечал DLL, от которой зависит один из моих проектов, и удалял его. Даже после исключения каталога, где живет DLL, то же самое поведение продолжалось до тех пор, пока я не перезагрузил компьютер.
У меня была та же проблема, но решение для моего случая не указано в ответах.Моя антивирусная программа (AVG) определила файл MyProg.exe как вирус и положить его в “хранилище вирусов”. Вам нужно проверить этот склад, и если файл есть – то просто восстановить его. Это меня выручило.Решение 1 (для моего случая): перезапустите процесс Проводника windows (да, диспетчер файлов windows).
решение 2:
- Закрыть Visual Studio. Выход Из Системы Windows
- вход в систему, откройте Visual Studio
- построить как обычно. Теперь он строит и может получить доступ к проблемному файлу.
Я предполагаю, что иногда файловая система или тот, кто ее контролирует, теряется с ее разрешениями. Перед перезапуском сеанса windows, пытался убить зомби msbuild32.
exe процессы, перезагрузите visual studio, не проверяйте даже отображение файла проблемы. Нет проблем с конфигурацией сборки. Это случается время от времени.
Некоторые внутренние вещи в Windows не исправляются,требуется перезагрузка.
в моем случае Я заменил файлы математической библиотеки из предыдущего графического курса игрового движка на GLM. Проблема заключалась в том, что я не добавил их в проект в обозревателе решений Visual Studio (даже если они были в репозитории проекта).
У меня была эта проблема в сочетании с ошибкой LNK2038, а затем это post для разделения библиотеки DLL выпуска и отладки. В этом процессе я очистил всю папку, в которой находились эти зависимости.
к счастью, у меня была резервная копия всех этих файлов, и я получил файл, для которого эта ошибка отбрасывала обратно в папку отладки, чтобы решить проблему. Код ошибки вводил в заблуждение каким-то образом, поскольку мне пришлось потратить много времени, чтобы прийти к этому совету от одного из ответов с этого поста снова.
надеюсь, что этот ответ, помогает кому-то в нужде.
Я решил это с помощью добавлять an существующий проектto мой решение, который я забыл добавить в первый раз.
у меня была та же ошибка:
fatal error LNK1104: cannot open file 'GTest.lib;'
Это было вызвано ; в конце. Если у вас есть несколько библиотек, они должны быть разделены пустым пространством (пробел), без запятой или точки с запятой!
Так что не используйте ; или что-нибудь еще при перечислении библиотек в свойства проекта > > свойства конфигурации > > Компоновщик > > вводУ меня была такая же проблема , я просто скопировал код в новый проект и начали строить . Некоторые другие ошибки начали приходить. ошибка C4996:' fopen': эта функция или переменная может быть небезопасной. Рассмотрите возможность использования fopen_s вместо
снова решить эту проблему, я добавил свое одно свойство в проект, как показано ниже. Проект – > свойства – > свойство конфигурации – > c/c++ . В этой категории есть поле Имя препроцессора определенияЯ добавил _CRT_SECURE_NO_WARNINGS это для решения проблемыНадеюсь, это поможет …
Спасибо
Источник: https://codengineering.ru/q/why-does-fatal-error-lnk1104-cannot-open-file-c-program-obj-occur-when-i-c-16510