Не удается открыть входной файл

Обновлено: 05.07.2024

Я уже некоторое время сталкиваюсь со странной ошибкой в Visual Studio 2010.

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

Иногда, в последние дни чрезвычайно часто, после перестройки решения или просто компиляции его с измененными исходными файлами 1-3, я получаю следующую ошибку:

Где компиляция thelibrary.lib прошла успешно без каких-либо ошибок или предупреждений.

Я пробовал очищать раствор, но это не всегда срабатывает.

При попытке установить определенный геофизический инструментарий Python я получаю эту ошибку: LINK: фатальная ошибка LNK1181: не удается открыть входной файл 'm.lib' Я считаю, что это связано с тем, что я использую buildtools MSVC. В их setup.py я нашел: setup(…, ext_modules=[ Extension(…, […].

В Компоновщик, общие, дополнительные каталоги библиотек, добавьте каталог в .dll или .libs вы включили в Компоновщик, ввод. Это не сработает, если вы поместите это в каталоги VC++, библиотечные каталоги.

Я вижу только 1 вещь, происходящую здесь: Вы не установили должным образом зависимости на thelibrary.lib в своем проекте, что означает, что thelibrary.lib построен в неправильном порядке (или в то же время, если у вас есть более 1 конфигурации сборки CPU, что также может объяснить случайность ошибки). (Вы можете изменить зависимости проекта в: меню - >проект->зависимости проекта )

Я пытался скомпилировать проект VC6 на работе, с VS2008 . Мне удалось успешно удалить все ошибки компиляции и предупреждения в моем унаследованном коде. Но на этапе связывания я столкнулся со странной проблемой . Проблема заключается в следующем : Первая проблема, с которой я столкнулся.

Хиии. Я использую opencv-2.4.11 с microsoft visual studio 12 express edition с поддельным ключом и windows 8.1. У меня нет проблем с компиляцией моего кода, но когда я строю свой проект, он показывает следующую ошибку LINK: фатальная ошибка LNK1181: не удается открыть входной файл.

В принципе, если у вас есть пробелы на пути .lib, это плохо. Не знаю, происходит ли это с вами, но кажется вполне возможным.

Исправление состоит в том, чтобы либо 1) поместить ссылку lib в "quotes", либо 2) добавить путь lib в каталоги вашей библиотеки (свойства конфигурации >> каталоги VC++).

У меня была одна и та же проблема и в VS 2010, и в VS 2012 годах. В моей системе была построена первая статическая библиотека, а затем она была немедленно удалена, когда начался основной проект.

Проблема заключается в общей промежуточной папке для нескольких проектов. Просто назначьте отдельную промежуточную папку для каждого проекта.

Подробнее об этом читайте здесь

Я решил ее следующим образом:

Перейдите в раздел просмотр - > страницы свойств -> свойства конфигурации -> Компоновщик -> ввод

В разделе Дополнительные зависимости добавьте thelibrary.lib. Не используйте никаких цитат.

У меня была аналогичная проблема в том, что я получал LINK1181 ошибок в файле .OBJ , который был частью самого проекта (а во всем проекте было только 2 .cxx файла).

Я натыкаюсь на ту же проблему. Для меня это, по-видимому, вызвано наличием 2 проектов с одинаковым названием, Один из которых зависит от другого.

Например, у меня есть один проект под названием Foo, который производит Foo.lib. Затем у меня есть еще один проект, который также называется Foo, который производит Foo.exe и ссылки в Foo.lib.

Я наблюдал за монитором процесса file activity w/. Что, кажется, происходит это фу(Либ) строится в первую очередь-это правильное, т. к. функция(exe) отмечен как в зависимости от Фу(Либ). Все это прекрасно и успешно строится, и помещается в вывод directory--$(OutDir)$(TargetName)$(TargetExt)., а затем Foo (exe) запускается для перестройки. Ну, перестройка-это чистка, за которой следует сборка. Похоже, что этап 'clean' Foo.exe удаляет Foo.lib из выходного каталога. Это также объясняет, почему работает последующий 'build'-который не удаляет выходные файлы.

Наверное, ошибка в VS.

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

Я не знаю почему, но изменение ссылки Linker->Input->Additional Dependencies с "dxguid.lib" на "C:\Program Files (x86)\Microsoft DirectX SDK (июнь 2010)\Lib\x86\dxguid.lib" (в моем случае) было единственным, что сработало.

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

Может быть, у вас проблемы с оборудованием.

У меня была та же проблема в моей старой системе (AMD 1800 MHz CPU ,1GB RAM ,Windows 7 Ultimate) ,пока я не изменил 2x 512 MB RAM на 2x 1GB RAM . С тех пор у меня не было никаких проблем. Исчезли и другие (незначительные) проблемы. Думаю, эти два модуля 512 MB не очень нравились друг другу, потому что 2x 512 MB + 1GB или 1x 512 MB + 2x 1GB тоже не работали должным образом.

Чтобы получить форму 8.3, выполните (в командной строке):

рекурсивно через каждый уровень каталогов.

У меня была такая же ошибка при запуске lib.exe из cmd на Windows с длинным списком аргументов. по-видимому, cmd.exe имеет максимальную длину строки около 8K символов, что привело к тому, что имена файлов в конце этого порога были изменены, что привело к плохой ошибке имени файла. мое решение состояло в том, чтобы обрезать линию. Я удалил все пути из имен файлов и добавил один путь, используя опцию /LIBPATH. например:

У меня была та же проблема. Решил его, определив макрос OBJECTS , который содержит все объекты компоновщика, например:

А затем укажите $(OBJECTS) в командной строке компоновщика.

Однако я не использую Visual Studio , только nmake и файл .MAK

Я нашел для этого другое решение.

На самом деле я пропустил разделитель запятых между двумя библиотечными путями. После добавления common это сработало для меня.

Перейдите по адресу: Project properties -> Linker -> General -> Link Library Dependencies по этому пути убедитесь, что путь к библиотеке правильный.

Предыдущий код ( с ошибкой -потому что я забыл разделить два пути lib запятой):

Код после исправления (просто отдельные библиотеки с запятой):

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

В моем случае библиотека была установлена с помощью пакета NuGet (cpprestsdk), и я ложно добавил lib к дополнительным зависимостям в настройках компоновщика. Оказывается, пакет делает все это за вас.

Затем компоновщик попытался найти библиотеку в библиотечном пути и, конечно же, не смог ее найти.

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

Я создал каталог bin на уровне project_dir, а затем создал каталог release/debug внутри папки bin , что решило проблему для меня.

Похожие вопросы:

У меня VS 2010 на Windows 7. Я создаю новый проект, выбираю язык c++, Win32 project, DLL, экспортирую символы и заканчиваю. Теперь, когда я компилирую проект без каких-либо изменений в том, что.

Я использую код алгоритма SIFT Роба Хесса , который использует библиотеку OpenCV в Windows. И у меня есть visual studio 2008 в качестве IDE. Когда я запускаю программу для сопоставления изображений.

При попытке установить определенный геофизический инструментарий Python я получаю эту ошибку: LINK: фатальная ошибка LNK1181: не удается открыть входной файл 'm.lib' Я считаю, что это связано с тем.

Я столкнулся с ошибкой в Visual Studio 2005 году. Я использовал boost python (boost_1_54_0)для интерфейса python 3.3.2 с c++. Я следовал этому учебнику.

Я пытался скомпилировать проект VC6 на работе, с VS2008 . Мне удалось успешно удалить все ошибки компиляции и предупреждения в моем унаследованном коде. Но на этапе связывания я столкнулся со.

Хиии. Я использую opencv-2.4.11 с microsoft visual studio 12 express edition с поддельным ключом и windows 8.1. У меня нет проблем с компиляцией моего кода, но когда я строю свой проект, он.

Я новичок в программировании с Visual studio 2013, и я создал проект (игру) и создал установщик с помощью Cmake. Но когда я строю свой проект, я получаю следующую ошибку: и у меня была следующая.

Я пытаюсь скомпилировать cudamat в моем Windows 10, используя командную строку VS2015 x64 native tools. Я уже установил Cuda toolkit 8, а также Visual Studio 2015 с компилятором MSVC. После загрузки.

Я пытаюсь установить версию поддержки xgboost gpu, следуя следующим инструкциям. xgboost-gpu-support Я использую windows 10, visual studio 2017. Версия not-gpu-support работает нормально. Но для.

Я уже некоторое время сталкиваюсь со странной ошибкой в ​​Visual Studio 2010.

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

Иногда, в последние дни, очень часто, после перестройки решения или просто компиляции с 1-3 измененными исходными файлами, я получаю следующую ошибку:

Где компиляция thelibrary.lib прошла успешно без каких-либо ошибок или предупреждений.

Я пытался очистить раствор, но это не всегда работает.

В Linker, вообще, дополнительные каталоги библиотек, добавьте каталог в .dll или .libs, которые вы включили в Linker, Input. Это не работает, если вы поместите это в каталоги VC++, каталоги библиотек.

Я вижу, что здесь происходит только 1 вещь: вы неправильно установили зависимости для thelibrary.lib в своем проекте, что означает, что thelibrary.lib собран в неправильном порядке (или в то же время, если у вас более 1 конфигурации сборки CPU, что также может объяснить случайность ошибки). (Вы можете изменить зависимости проекта в: Меню-> Проект-> Зависимости проекта)

В принципе, если у вас есть пробелы на пути к .lib, это плохо. Не знаю, так ли это с тобой, но кажется разумным.

Исправление: 1) поместите ссылку на lib в "кавычки", или 2) добавьте путь к lib в ваши каталоги библиотеки (Свойства конфигурации >> Каталоги VC++).

У меня была одна и та же проблема как в VS 2010, так и в VS 2012. В моей системе была собрана первая статическая библиотека, а затем она была немедленно удалена, когда основной проект начал собираться.

Проблема в общей промежуточной папке для нескольких проектов. Просто назначьте отдельную промежуточную папку для каждого проекта.

Подробнее об этом здесь

Я решил это со следующим:

Под дополнительными зависимостями добавьте thelibrary.lib. Не используйте цитаты.

У меня была похожая проблема в том, что я получал ошибки LINK1181 в файле .OBJ , который был частью самого проекта (и во всем проекте было только 2 файла .cxx).

Я не знаю почему, но меняю ссылку Linker-> Input-> Additional Dependencies с "dxguid.lib" на "C:\Program Files (x86)\Microsoft DirectX SDK (июнь 2010 г.)\Lib\x86\dxguid". lib "(в моем случае) было единственным, что сработало.

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

Например, у меня есть один проект с именем Foo, который производит Foo.lib. Затем у меня есть другой проект, который также называется Foo, который производит Foo.exe и ссылки в Foo.lib.

Я смотрел файл активности ж/Process Monitor. Кажется, происходит то, что сначала создается Foo (lib) - это правильно, потому что Foo (exe) помечен как зависящий от Foo (lib). Это все нормально и успешно собирается, и помещается в выходной каталог - $ (OutDir) $ (TargetName) $ (TargetExt). Затем Foo (exe) запускается для восстановления. Ну, перестройка - это чистая, за которой следует сборка. Кажется, что "чистым" этапом Foo.exe является удаление Foo.lib из выходного каталога. Это также объясняет, почему работает следующая сборка, которая не удаляет выходные файлы.

Ошибка в VS, я думаю.

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

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

У меня была такая же ошибка при запуске lib.exe из cmd в Windows с длинным списком аргументов. очевидно, cmd.exe имеет максимальную длину строки около 8 КБ символов, в результате чего имена файлов в конце этого порога были изменены, что привело к ошибочной ошибке в имени файла. Мое решение состояло в том, чтобы урезать линию. Я удалил все пути из имен файлов и добавил один путь, используя параметр/LIBPATH. например:

Может быть, у вас есть проблемы с оборудованием.

У меня была такая же проблема в моей старой системе (процессор 1800 МГц AMD, 1 ГБ RAM, Windows 7 Ultimate), пока я не изменил 2x 512 МБ RAM на 2x 1 ГБ ОЗУ. С тех пор не было никаких проблем. Также исчезли другие (незначительные) проблемы. Думаю, эти два модуля по 512 МБ не очень понравились друг другу, потому что 2x 512 МБ + 1 ГБ или 1x 512 МБ + 2x 1 ГБ тоже не работали должным образом.

В моем случае у меня была установлена ​​библиотека с использованием пакета NuGet (cpprestsdk), и я ошибочно добавил библиотеку к дополнительным зависимостям в настройках компоновщика. Оказывается, пакет делает все это за вас.

Затем компоновщик попытался найти библиотеку в пути к библиотеке и, конечно, не смог ее найти.

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

Я нашел другое решение для этого .

На самом деле, я пропустил разделитель запятой между двумя путями библиотеки. После добавления общего у меня это сработало.

Перейдите по адресу: Project properties -> Linker -> General -> Link Library Dependencies . По этому пути убедитесь, что путь к библиотеке правильный.

Предыдущий код (с ошибкой - потому что я забыл разделить два пути lib запятой):

Код после исправления (просто разделяйте библиотеки запятыми):

Надеюсь, что это поможет вам.

У меня такая же проблема. Решил это путем определения макроса OBJECTS , который содержит все объекты компоновщика, например:

Затем укажите $(OBJECTS) в командной строке компоновщика.

Я не использую Visual Studio хотя, просто nmake и файл .MAK

У меня есть VS 2010 в Windows 7. Я создаю новый проект, выбираю язык C++, проект Win32, DLL, экспортирую символы, затем заканчиваю. Теперь, когда я компилирую проект без каких-либо изменений в том, что генерирует VS, я получаю.

LINK: фатальная ошибка LNK1181: не удается открыть входной файл"■/.параметр obj"

У меня также есть VS 2008 установить на той же машине. Я следую тем же шагам, и он компилируется. Что я делаю не так?

редактировать Хорошо, я обнаружил, что это ошибка связана со старой версией используемого компоновщика. Не знаю почему. В VS2010, каталоги проекта устанавливаются иначе, чем в VS2008. Как только я это выясню, возможно, я смогу решить свою проблему.

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

Я обнаружил, что после создания моего проекта c++ мне нужно удалить " Microsoft.СРР.С Win32.User " property sheets. Если нет, то я получаю странную ошибку выше, но если я удаляю их, простой проект компилируется нормально. Исключать их.

  1. Выберите Вид - >Другие Окна - >Менеджер Свойств
  2. разверните группу свойств (название проекта)
  3. разверните все конфигурации (мои - "Debug|Win32" и "Release|Win32")
  4. Multi-выберите все " Microsoft.СРР.С Win32.User " листы свойств (по одному под каждой конфигурацией)
  5. удалить

Visual Studio 2012-LINK: неустранимая ошибка LNK1181: не удается открыть входной файл"■/.параметр obj" Я использую VS 2012.

я отследил это немного больше. Для меня это не происходит, когда я пытаюсь построить x64-разрядную версию моего приложения. Я обнаружил, что мой проект .vcxproj имеет "условие ImportGroup", которое выглядит следующим образом:

у меня также есть один для моей сборки x64, который выглядит так:

Я взглянул на файлы:

разница в том, что каждый из них отличается. x64 в основном пуст, а Win32 имеет три пути в нем.

раздел версии Win32, содержит три пути, <ExecutablePath> , <IncludePath> и <LibraryPath> .

Я обнаружил, что удаление <ExecutablePath> путь заставляет эту проблему уйти. Я смотрю глубже на этот путь, чтобы увидеть, если что-то выскочит на меня, но я думал, что передам его, если кто-то еще может найти, что не так этот путь.

Я тоже столкнулся с той же проблемой при компиляции проекта VC++ в Visual Studio 2017. Компилятор пожаловался на следующее.

LINK : fatal error LNK1181: cannot open input file " ■/.obj"

при анализе проблемы обнаружено, что проект "свойства конфигурации-каталоги VC++ - исполняемые каталоги", как показано ниже, содержит путь к папке Microsoft Visual Basic C:\Program Files (x86)\Microsoft Visual Studio\VB98 который имеет свой собственный link.exe .

Visual Studio Executable Directories dialog

ошибка компоновщика произошла из-за к тому, что Visual Studio вызывала компоновщик Visual Basic, а не компоновщик Visual C++!

Microsoft Logo

Gray Pipe

Приносим извинения. Запрошенное содержимое было удалено. Вы будете автоматически перенаправлены через 1 секунду.

Лучший отвечающий

Вопрос

Подскажите пожалуйста. Пишу исходник в Microsoft Visual C++ 2008 Express Edition. Компилирую - все нормально, работает. вношу какие либо изменения в коде и пытаюсь заново скомпилировать. Выдает вот такую ошибку.

1>------ Построение начато: проект: 5_stepen', Конфигурация: Debug Win32 ------
1>Компиляция.
1>stepen'.cpp
1>Компоновка.
1>LINK : fatal error LNK1168: не удается открыть C:\Users\Anton\Documents\Visual Studio 2008\Projects\5_stepen'\Debug\5_stepen'.exe для записи
1>Журнал построения был сохранен в "file://c:\Users\Anton\Documents\Visual Studio 2008\Projects\5_stepen'\5_stepen'\Debug\BuildLog.htm"
1>5_stepen' - ошибок 1, предупреждений 0
========== Построение: успешно: 0, с ошибками: 1, без изменений: 0, пропущено: 0 ==========

Для устранения приходится сохранить мой.cpp и закрыть прогу. через 2 минуты отрывать. тогда запускается компиляция. Ни чего не могу поделать.

Ответы

Такое происходит, когда Ваш файл 5_stepen.exe не доступен для записи. В ОС WinNT это ситуация возникает, когда файл залочен. Причиной может служить следующее: Вы скомпилировали проект и запустили полученный код. Вносите изменения, компилируете, но запись в файл .exe линковщиком не может быть выполнена, т.к. программа продолжает выполняться, т.е. она продолжает висеть в памяти. Для решения проблемы необходимо просто остановить выполнение Вашей программы 5_stepen.exe.

Все ответы

Такое происходит, когда Ваш файл 5_stepen.exe не доступен для записи. В ОС WinNT это ситуация возникает, когда файл залочен. Причиной может служить следующее: Вы скомпилировали проект и запустили полученный код. Вносите изменения, компилируете, но запись в файл .exe линковщиком не может быть выполнена, т.к. программа продолжает выполняться, т.е. она продолжает висеть в памяти. Для решения проблемы необходимо просто остановить выполнение Вашей программы 5_stepen.exe.

Не подскажите, как избавиться от косяка (или хотя бы "убить" процесс без перезагрузки). Заранее спасибо.

Я пытаюсь установить zendframework с помощью инструмента composer на сервере wamp.

Следующие шаги выполняются для установки

Я загрузил файл Composer-Setup.exe со страницы композитора и получил успешную установку.

Я загрузил zendframework и извлек его из папки c:\wamp\www\zend

Я выполнил команду для самообновления

php composer.phar self-update

как устранить эту ошибку

Если я попробую

введите описание изображения здесь

Установка composer.phar не работает, но без .phar это работает.

Перед установкой работы с Zendframe нам нужно включить модуль openssl в php.

Мы должны раскомментировать строку ; extension = php_openssl.dll из файла php.ini .

композитор использует другой файл php.ini, который находится в wamp\bin\php\php-<version number>\php.ini

После включения openssl нам нужно перезапустить сервер.

Выполните следующие комментарии.

Я могу успешно установить с помощью этих команд -

введите описание изображения здесь

Это установит composer в текущий каталог, чтобы вы могли использовать php composer.phar

Я пытался установить YII 2.0

Я получил ту же ошибку:

Не удалось открыть входной файл: composer.phar

Затем я дал полный путь к .phar следующим образом:

и это сработало.

Я использую Windows 7, и у меня возникла та же проблема, что и у вас, при использовании Composer через cmd.

Проблема решается, когда я использую

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

Сначала попробуйте это: не используйте php composer.phar [parameters] , просто используйте composer [parameters] , если это не сработает, попробуйте остальные. Надеюсь, это поможет.

В качестве решения вы должны использовать команду composer сразу после ее установки. В командной строке просто введите composer и нажмите enter.

Если composer установлен правильно, вы должны увидеть множество предложений и списка команд от composer.

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

ОП уже ответил на вопрос, но я отправляю этот ответ для тех, у кого возникла подобная проблема, возвращаясь к

Не удалось ввести открытый файл: composer.phar

Просто перейдите в каталог /папку вашего проекта и выполните

Предположим, что именно здесь у вас есть веб-приложение:

измените каталог на него и запустите composer update .

не используйте php composer.phar self-update
Сначала зайдите в каталог вашего проекта
просто используйте composer.phar self-update
Это работает для меня

Вот как это работает для меня:

Убедитесь, что композитор установлен без ошибок.

Откройте «Свойства системы» в окнах и перейдите на вкладку «Дополнительно». (Вы можете просто нажать кнопку Windows на клавиатуре и ввести «Изменить системные переменные среды»

В разделе "Системные переменные" измените "PATH"

Введите: C: \ ProgramData \ ComposerSetup \ bin \ composer.phar

Закройте все папки & CMDs + перезагрузить сервер WAMP.

Перейдите в любой каталог, в который вы хотите установить пакет, и введите

Читайте также: