Lnk1104 не может открыть файл

Обновлено: 07.07.2024

Создавайте приложения, которые можно масштабировать в будущем, с помощью оптимизированного кода, разработанного для Intel® Xeon® и совместимых процессоров.

Успех! Подписка добавлена.

Успех! Подписка удалена.

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

  • Сообщества Intel
  • Форумы разработчиков программного обеспечения
  • Инструменты разработки программного обеспечения
  • Компилятор Intel® Fortran
  • ССЫЛКА: фатальная ошибка LNK1104: невозможно открыть файл ifmodintr.lib

ССЫЛКА: фатальная ошибка LNK1104: невозможно открыть файл ifmodintr.lib

  • Отметить как новое
  • Добавить в закладки
  • Подписаться
  • Отключить звук
  • Отправить сообщение другу

Я пытаюсь сделать то же самое, что и здесь (использую библиотеку, сгенерированную Fortran, на другом компьютере без компилятора Intel)

Стив дал ссылку на MSDN для получения инструкций. К сожалению, сейчас ссылка не работает. Может ли кто-нибудь направить меня в правильном направлении, чтобы объединить то, что требуется для моей программы, с файлом LIB, созданным моим проектом Fortran?

  • Отметить как новое
  • Добавить в закладки
  • Подписаться
  • Отключить звук
  • Отправить сообщение другу

В каталоге c:\users\ibrahimkonuk_2\anaconda3\ есть несколько системных библиотек Windows, например \API-MS-WIN-CORE-RTLSUPPORT-L1-1-0.DLL. Вы НИКОГДА не должны копировать эти библиотеки DLL в свои собственные папки - это основная (если не основная) причина, по которой у вас возникают трудности. Удалите их.

  • Отметить как новое
  • Добавить в закладки
  • Подписаться
  • Отключить звук
  • Отправить сообщение другу

Я попробовал несколько опубликованных решений, таких как:

Добавьте папку Intel Fortran IA32LIB (например, C:Program FilesIntelCompilerFortran9.0IA32Lib) в Tools..Options..Projects..VC++ Directorys..Library Files.

также включен альтернативно файл или папка с полным путем в

Компоновщик>Общие>Зависимости дополнительных библиотек

Также добавлено имя библиотеки в разделе:

Linker>Input>Игнорировать определенные библиотеки по умолчанию

Я всегда получаю сообщение.

Код серьезности Описание Состояние подавления строки файла проекта
Ошибка LNK1104 не удается открыть файл 'ifmodintr.lib' PLDYNA E:\AArea\ik20a\PLDYN17\CPPFort\PLDYNA\PLDYNA\LINK 1

Всегда одно и то же. Если вы заметили, что компоновщик файлов, предоставленный Visual Studio, отличается от того, что я указал. Кажется, это как-то получается из конфигурации проекта. Я также отредактировал файл конфигурации проекта. Я заметил, что изменения, внесенные в диалоговое окно свойств проекта Visual Studio, не отражаются в файле конфигурации проекта.

Должен упомянуть, что я скопировал всю папку решения с проектами C++ и Fortran на новый компьютер, удалил проект Fortran и скопировал расположение моей статической библиотеки Fortran в файле конфигурации проекта. Так что кажется, что Visual Studio каким-то образом очень чувствительна к возне с проектами.

  • Отметить как новое
  • Добавить в закладки
  • Подписаться
  • Отключить звук
  • Отправить сообщение другу

Правильно ли я понимаю, что вы пытаетесь собрать это в системе с Intel Fortran 9.0? Это не сработает, так как исходники были скомпилированы гораздо более новым (14 или 15) компилятором. Вы всегда должны использовать библиотеки не менее новые, чем компилятор, использованный для компиляции исходных кодов.

  • Отметить как новое
  • Добавить в закладки
  • Подписаться
  • Отключить звук
  • Отправить сообщение другу

Я пытаюсь пересобрать идентичную (C++/Fortran) программу в системе, в которой нет компилятора Intel Fortran.

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

Ошибка LNK1104: невозможно открыть файл ifconsol.lib PLDYNA E:\AArea\ik20a\WrapCPP\PLDYNA\PLDYNA\LINK 1

Затем я копирую библиотеку на второй компьютер. Я отредактировал файл конфигурации проекта через Visual Studio и вставил путь к библиотеке в:

Linker>Дополнительные каталоги библиотек

Построить программу успешно. Когда я пытался запустить EXE-файл без отладки или с отладкой, я получаю сообщение об ошибке:

Ошибка LNK1104 не может открыть файл 'C:\Users\My\source\repos\C++_6\Debug\C++_6.exe'

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

56249-screenshot-2021-01-13-160631.jpg

2 ответа

Жанин уже предположила, что его может блокировать антивирус или другая
программа безопасности. Она также предложила
установить свой каталог в качестве исключения в любом программном обеспечении AV/AM
, которое вы используете. Вы пробовали это?

Для дальнейших исследований в этом направлении предоставьте
следующую информацию:

(1) Какое программное обеспечение AV/AM/IS вы используете?

(2) Пробовали ли вы запускать свою программу с
временно отключенным программным обеспечением безопасности?

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

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

Когда вы меняете строку в своей программе, вы изменяете
сгенерированный объектный код, что может привести к
другой оценке исполняемого файла программным обеспечением безопасности.

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

Или попробуйте этот вариант, который использует строку только для чтения
вместо массива в вашем примере:

Во-первых, вы можете проверить, запущено ли уже ваше приложение. Если это так, вы можете попытаться остановить программу и выгрузить ее из отладчика перед повторной сборкой. Если приложение открыто в другой программе, например в редакторе ресурсов, закройте его. Если ваша программа не отвечает, вам может потребоваться использовать диспетчер задач, чтобы завершить процесс. Вам также может потребоваться закрыть и перезапустить Visual Studio.

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

Для получения дополнительной информации я предлагаю вам обратиться к документу: Linker Tools Error LNK1104

Если ответ полезен, нажмите "Принять ответ" и проголосуйте за него.

Примечание: следуйте инструкциям в нашей документации, чтобы включить уведомления по электронной почте, если вы хотите получать соответствующее уведомление по электронной почте для этой темы.

Спасибо за ответ.
Я перезапустил Windows, но проблема не решена.
У меня проблема с этим фрагментом кода. если я изменю свой код, я смогу запустить программу.
Например:

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

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

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

27 ответов 27

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

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

C:\Program Files\sofware sdk\lib\library.lib

"C:\Program Files\sofware sdk\lib\library.lib"

где я добавил кавычки.

У меня была такая же проблема. Если ваш компоновщик правильный, но ваш каталог lib установлен неправильно, может возникнуть та же ошибка. Попробуйте посмотреть в Свойствах конфигурации -> Каталоги VC++ -> Каталоги библиотек, чтобы убедиться, что вы правильно установили библиотеку. Иногда папка lib состоит из папок x86 и x64. Вы должны установить его на один из них (в зависимости от вашего компилятора), а не на папку, содержащую оба.

Не забудьте поставить точку с запятой после "C:\Program Files\sofware sdk\lib\library.lib" . Отсутствие ; также приведет к неправильной компиляции проекта.

Возникла эта проблема при попытке собрать OpenCV с помощью Visual Studio 2005 (в Windows 8.1). и это решило это. Отлично!

Попробовал, не помогло. "Qt5Xmld.lib";"Qt5XmlPatternsd.lib";"Qt5Cored.lib";%(AdditionalDependencies) -Что нужно изменить?

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

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


Я вышел из аккаунта и снова вошел в него, и это сработало. По-видимому, у меня не было открытого файла *.exe, и я попытался перезапустить VS, но безрезультатно.

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

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

Ах, Майкрософт. Наша первая попытка всегда должна заключаться в закрытии и повторном открытии (или выключении и включении питания) — когда мы это делаем, исчезает несколько загадочных ошибок.

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

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

В моем случае это также было проблемой, но что мне делать, если я хочу включить этот флаг (чтобы просмотреть файл Prepossessed)?

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

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


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

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

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

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

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

В этом случае определенно запутанное сообщение об ошибке, так как имя заголовка было, но ошибка выдала мне «невозможно открыть файл 'llibboost_filesystem-vc140-mt-gd-1_59.lib'» и никаких номеров строк или чего-то еще.


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

  • Сообщество
  • :
  • Крео Параметрик
  • :
  • Настройка
  • :
  • LNK1104: ошибка открытия файла

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

LNK1104: ошибка открытия файла

мс-6 ​​

  • Отметить как новое
  • Добавить в закладки
  • Подписаться
  • Отключить звук
  • Отправить сообщение другу

Я получаю сообщение об ошибке LNK1104: невозможно открыть файл, когда я использую VS 2015, но у меня нет ошибки, когда я использую VS2010

Габриэль Заха

  • Отметить как новое
  • Добавить в закладки
  • Подписаться
  • Отключить звук
  • Отправить сообщение другу

Какой файл вызывает ошибку.

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

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

Если ошибка возникает из-за одного из файлов библиотеки, вам необходимо сравнить настройки между VS2015 и VS2010.

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

Вот ссылка на документацию Microsoft об этой ошибке:

мс-6 ​​

  • Отметить как новое
  • Добавить в закладки
  • Подписаться
  • Отключить звук
  • Отправить сообщение другу

Я использовал make-файл для создания приложения набора инструментов с помощью VS2015. Когда я пытаюсь скомпилировать свой код, я получаю сообщение об ошибке, не могу открыть файл «protoolkit. Н'

Габриэль Заха

  • Отметить как новое
  • Добавить в закладки
  • Подписаться
  • Отключить звук
  • Отправить сообщение другу

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

В своем воспроизведении вы упоминаете сообщение об ошибке во время компиляции о том, что не можете найти 'protoolkit. Х'. Это другой вид ошибки. Скорее всего C1083

Вот что вам нужно искать:

<р>1. Убедитесь, что ваш исходный код вызывает protoolkit.h. Между точкой и буквой h нет пробела.

<р>2. Если ошибка повторяется, убедитесь, что компилятор знает, где искать включаемые файлы, используя ключ -I в флагах компиляции.

<р>3. После того, как вы устраните все ошибки компилятора, вы можете перейти к ошибкам компоновщика, как я описал в своем предыдущем повторе.

мс-6 ​​

  • Отметить как новое
  • Добавить в закладки
  • Подписаться
  • Отключить звук
  • Отправить сообщение другу

@GabrielZaha не работает. Я использую профессиональную версию VS 2015. Не могли бы вы помочь мне в начальной настройке и для VS

Габриэль Заха

  • Отметить как новое
  • Добавить в закладки
  • Подписаться
  • Отключить звук
  • Отправить сообщение другу

Пожалуйста, изучите документацию по Protoolkit и Visual Studio.

В папке \protoolkit\x86e_win64\obj вы найдете следующие два zip-файла:

protk_install_example.zip — содержит пример проекта, в котором используется make-файл

pt_install_cxx.zip — этот zip-файл содержит полное решение VS2015. Чтобы это работало, вам нужно установить переменную среды CREO_INSTALL так, чтобы она указывала на каталог creo loadpoint.

Если ваш проект основан на make-файле, вам необходимо изучить раздел "Запуск решения Microsoft Visual Studio" из tkuse.pdf и protk_install_example.zip

Если вы используете проект без makefile, убедитесь, что вы используете те же параметры, что и в решении pt_install_cxx.

В документации Visual Studio посмотрите хотя бы, как указать дополнительные каталоги Include для компиляции и как указать дополнительные библиотеки для компоновщика.

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