Ошибка lnk1105 не удается закрыть файл

Кусок кода, который вызывает ошибку. При удалении папки debug ошибка исчезает, но только на один запуск программы. Функция получает на вход строку char* и выводит кол-во слов в ней. Задание по лабораторной работе.

int word_count(const char* str) 
{

    int cnt = 0;
    bool flag = false;

    for (const char* p = str+1; *p != 0; ++p) {

        if (*p == ' ' &&  *(p - 1) != ' ' && *(p + 1) != ' ' && *(p + 1) != 0) cnt += 1;
        if (*p != ' ') flag = true;

    }

    if (flag) cnt += 1;

    return cnt;
}

задан 20 окт 2022 в 18:21

Shinshila Anarhist's user avatar

1

Во время сборки не завершена работа предыдущей версии программы, так что .exe-файл заблокирован от записи, на что и жалуется компоновщик.

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

ответ дан 21 окт 2022 в 10:58

Mikhailo's user avatar

MikhailoMikhailo

12.3k2 золотых знака17 серебряных знаков41 бронзовый знак

Кусок кода, который вызывает ошибку. При удалении папки debug ошибка исчезает, но только на один запуск программы. Функция получает на вход строку char* и выводит кол-во слов в ней. Задание по лабораторной работе.

int word_count(const char* str) 
{

    int cnt = 0;
    bool flag = false;

    for (const char* p = str+1; *p != 0; ++p) {

        if (*p == ' ' &&  *(p - 1) != ' ' && *(p + 1) != ' ' && *(p + 1) != 0) cnt += 1;
        if (*p != ' ') flag = true;

    }

    if (flag) cnt += 1;

    return cnt;
}

задан 20 окт 2022 в 18:21

Shinshila Anarhist's user avatar

1

Во время сборки не завершена работа предыдущей версии программы, так что .exe-файл заблокирован от записи, на что и жалуется компоновщик.

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

ответ дан 21 окт 2022 в 10:58

Mikhailo's user avatar

MikhailoMikhailo

11.6k2 золотых знака16 серебряных знаков40 бронзовых знаков

  • Remove From My Forums
  • Question

  • Hi All,

     The error below:
    Error 14 error LNK1105: cannot close file ‘<file name>’                                                                
    The error occurred when compiling the project on clearcase directory.
    When compiling the project on a local disk (C:) the compilation succeeded.

    Can you please suggest.

    Thank you.

Answers

    • Marked as answer by
      Victor_Chen
      Wednesday, May 25, 2011 9:01 AM

All replies

    • Marked as answer by
      Victor_Chen
      Wednesday, May 25, 2011 9:01 AM
  • Thanks a ton, Catherine. I will check on that and let you know in case i have any issues.

    Thank you,

    ichadaram

  • Remove From My Forums
  • Question

  • Hi All,

     The error below:
    Error 14 error LNK1105: cannot close file ‘<file name>’                                                                
    The error occurred when compiling the project on clearcase directory.
    When compiling the project on a local disk (C:) the compilation succeeded.

    Can you please suggest.

    Thank you.

Answers

    • Marked as answer by
      Victor_Chen
      Wednesday, May 25, 2011 9:01 AM

All replies

    • Marked as answer by
      Victor_Chen
      Wednesday, May 25, 2011 9:01 AM
  • Thanks a ton, Catherine. I will check on that and let you know in case i have any issues.

    Thank you,

    ichadaram

Я использую MS Visual C++ 2010 Express, и я могу один раз запустить проект, и он будет работать отлично. Если я затем внесу какие-либо изменения в программу, а затем попытаюсь построить ее, я получу следующую ошибку:

1> ССЫЛКА: фатальная ошибка LNK1105: невозможно закрыть файл «F:C++ ProjectsRastertek ProjectsEngineDebugEngine.exe»

Перезапуск моего компьютера исправляет ошибку, но только для 1 экземпляра запуска программы. Я уже удалил файлы объемом 1 ГБ с USB-накопителя емкостью 4 ГБ, на котором я выполняю все свои программы, и он все еще выдает ошибку. Это довольно недавняя моя проблема, так как в прошлом я мог работать с программами без проблем.

1 ответ

Создайте пакетный файл и запустите его перед сборкой:

taskkill /im engine.exe /f


0

JazzSoft
12 Дек 2016 в 21:17

Хорошо, у меня возникли проблемы с повышением сборки (мне нужна версия сборки)

В чем проблема

Каждый раз, когда я пытаюсь запустить bootstrap.bat, я получаю эту ошибку через несколько секунд:

LINK : fatal error LNK1105: Cannot close file "bin.ntx86b2.exe".

"cl"  "/Fdbin.ntx86/" "/Fobin.ntx86/" /Febin.ntx86b2.exe "-DNDEBUG" "- ...

...failed [COMPILE] bin.ntx86b2.exe...
...skipped bjam.exe for lack of b2.exe...
...failed updating 1 target...
...skipped 1 target...

Технические характеристики системы

  • Windows 7
  • Visual Studio Express 10
  • 64bit

Что я уже пробовал

  • Деактивировать Comodo Internet Security Premium
  • Запустите vcvars32.bat
  • b2.exe НЕ запущен (перезагрузился для проверки)

2 ответы

Я испытал ту же ошибку. В моем случае это был блокировщик поведения Comodo Antivirus, вызывающий проблемы.

ответ дан 01 мар ’13, в 15:03

Недавно я столкнулся с той же проблемой (Windows 8.1, Boost 1.57). Даже после выхода из Comodo Internet Security вспомогательная служба COMODO Internet Security (cmdagent.exe) остается активной. Не сумев остановить его из оснастки «Службы», я изменил тип запуска службы с «Автоматически» на «Вручную» и убил процесс с помощью Process Explorer из Sysinternals Suite. После этого заработал Boost bootstrap.

Создан 06 ноя.

Не тот ответ, который вы ищете? Просмотрите другие вопросы с метками

c++
visual-studio-2010
boost
build
installation

or задайте свой вопрос.

    msm.ru

    Нравится ресурс?

    Помоги проекту!

    !
    Правила раздела *nix / gcc / Eclipse / Qt / wxWidgets / GTK+

    • При создании темы ОБЯЗАТЕЛЬНО указывайте версию тулкита / библиотеки / компилятора.
    • Перед тем как задать вопрос, сформулируйте его правильно, чтобы вас могли понять.
    • Нарушение Правил может повлечь наказание со стороны модераторов.

    Полезные ссылки:
    user posted image Boost по-русски
    user posted image Qt по-русски

    >
    [Qt] Error -> Debug + Release

    • Подписаться на тему
    • Сообщить другу
    • Скачать/распечатать тему



    Сообщ.
    #1

    ,
    18.07.14, 12:56

      Junior

      *

      Рейтинг (т): 1

      Доброго дня %User%

      Существует прожект, часть которого написана на Qt. На 1 машине оно компилится совершенно нормально, а на другой падает jom.

      При компиле debug версии получаем выхлоп:

      Цитата

      //проскипаны Варнинги

      echo 1 /* CREATEPROCESS_MANIFEST_RESOURCE_ID */ 24 /* RT_MANIFEST */ «debugEditor.exe.embed.manifest»>debugEditor.exe_manifest.rc
      if not exist debugEditor.exe if exist debugEditor.exe.embed.manifest del debugEditor.exe.embed.manifest
      if exist debugEditor.exe.embed.manifest copy /Y debugEditor.exe.embed.manifest debugEditor.exe_manifest.bak
      link /NOLOGO /DYNAMICBASE /NXCOMPAT /DEBUG /SUBSYSTEM:WINDOWS «/MANIFESTDEPENDENCY:type=’win32′ name=’Microsoft.Windows.Common-Controls’ version=’6.0.0.0′ publicKeyToken=’6595b64144ccf1df’ language=’*’ processorArchitecture=’*’» /MANIFEST /MANIFESTFILE:debugEditor.exe.embed.manifest /OUT:debugEditor.exe @C:Usersuser_2AppDataLocalTempEditor.exe.4304.182132.jom
      debugEditor.exe : fatal error LNK1106: недопустимый файл или нет места на диске: не удается обратиться к 0x3BAA50
      jom: C:TempbuildMakefile.Debug [debugEditor.exe] Error 1105
      jom: C:TempbuildMakefile [debug] Error 2
      16:31:25: Процесс «E:QtToolsQtCreatorbinjom.exe» завершился с кодом 2.
      Ошибка при сборке/установке проекта Editor (комплект: Desktop Qt 5.3 MSVC2013 OpenGL 64bit)
      Во время выполнения этапа «Сборка»

      В итоге получается ехешник, но с повреждённым хидером -> не запускается никак.

      при компиле release версии получаем:

      Цитата

      //проскипаны Варнинги

      link /NOLOGO /DYNAMICBASE /NXCOMPAT /INCREMENTAL:NO /SUBSYSTEM:WINDOWS «/MANIFESTDEPENDENCY:type=’win32′ name=’Microsoft.Windows.Common-Controls’ version=’6.0.0.0′ publicKeyToken=’6595b64144ccf1df’ language=’*’ processorArchitecture=’*’» /MANIFEST /MANIFESTFILE:releaseEditor.exe.embed.manifest /OUT:releaseEditor.exe @C:Usersuser_2AppDataLocalTempEditor.exe.4240.162428.jom
      LINK : fatal error LNK1105: не удается закрыть файл «releaseEditor.exe»
      jom: C:TempbuildMakefile.Release [releaseEditor.exe] Error 1105
      jom: C:TempbuildMakefile [release] Error 2
      16:45:16: Процесс «E:QtToolsQtCreatorbinjom.exe» завершился с кодом 2.
      Ошибка при сборке/установке проекта Editor (комплект: Desktop Qt 5.3 MSVC2013 OpenGL 64bit)
      Во время выполнения этапа «Сборка»

      Т.е. та же ошибка, но при этом ехешник есть и вполне запускаемый.

      Собственно что за беда с jom и с дебаг режимом? и как такое пофиксить?

      P.S. были опробованы х86 и х64 версии куте для ОГЛа под vs2013

      Сообщение отредактировано: imbaFireFenix — 18.07.14, 12:57


      JoeUser



      Сообщ.
      #2

      ,
      20.07.14, 23:13

        С правами на каталоги — все пучком?

        0 пользователей читают эту тему (0 гостей и 0 скрытых пользователей)

        0 пользователей:

        • Предыдущая тема
        • Кроссплатформенный C/C++: cl/gcc/Qt/Gtk+/WxWidgets
        • Следующая тема

        Недавно я столкнулся с той же проблемой (Windows 8.1, Boost 1.57). Даже после выхода из Comodo Internet Security вспомогательная служба COMODO Internet Security (cmdagent.exe) остается активной. Не сумев остановить его из оснастки «Службы», я изменил тип запуска службы с «Автоматически» на «Вручную» и убил процесс с помощью Process Explorer из Sysinternals Suite. После этого заработал Boost bootstrap.

        Создан 06 ноя.

        Не тот ответ, который вы ищете? Просмотрите другие вопросы с метками

        c++
        visual-studio-2010
        boost
        build
        installation

        or задайте свой вопрос.

          msm.ru

          Нравится ресурс?

          Помоги проекту!

          !
          Правила раздела *nix / gcc / Eclipse / Qt / wxWidgets / GTK+

          • При создании темы ОБЯЗАТЕЛЬНО указывайте версию тулкита / библиотеки / компилятора.
          • Перед тем как задать вопрос, сформулируйте его правильно, чтобы вас могли понять.
          • Нарушение Правил может повлечь наказание со стороны модераторов.

          Полезные ссылки:
          user posted image Boost по-русски
          user posted image Qt по-русски

          >
          [Qt] Error -> Debug + Release

          • Подписаться на тему
          • Сообщить другу
          • Скачать/распечатать тему



          Сообщ.
          #1

          ,
          18.07.14, 12:56

            Junior

            *

            Рейтинг (т): 1

            Доброго дня %User%

            Существует прожект, часть которого написана на Qt. На 1 машине оно компилится совершенно нормально, а на другой падает jom.

            При компиле debug версии получаем выхлоп:

            Цитата

            //проскипаны Варнинги

            echo 1 /* CREATEPROCESS_MANIFEST_RESOURCE_ID */ 24 /* RT_MANIFEST */ «debugEditor.exe.embed.manifest»>debugEditor.exe_manifest.rc
            if not exist debugEditor.exe if exist debugEditor.exe.embed.manifest del debugEditor.exe.embed.manifest
            if exist debugEditor.exe.embed.manifest copy /Y debugEditor.exe.embed.manifest debugEditor.exe_manifest.bak
            link /NOLOGO /DYNAMICBASE /NXCOMPAT /DEBUG /SUBSYSTEM:WINDOWS «/MANIFESTDEPENDENCY:type=’win32′ name=’Microsoft.Windows.Common-Controls’ version=’6.0.0.0′ publicKeyToken=’6595b64144ccf1df’ language=’*’ processorArchitecture=’*’» /MANIFEST /MANIFESTFILE:debugEditor.exe.embed.manifest /OUT:debugEditor.exe @C:Usersuser_2AppDataLocalTempEditor.exe.4304.182132.jom
            debugEditor.exe : fatal error LNK1106: недопустимый файл или нет места на диске: не удается обратиться к 0x3BAA50
            jom: C:TempbuildMakefile.Debug [debugEditor.exe] Error 1105
            jom: C:TempbuildMakefile [debug] Error 2
            16:31:25: Процесс «E:QtToolsQtCreatorbinjom.exe» завершился с кодом 2.
            Ошибка при сборке/установке проекта Editor (комплект: Desktop Qt 5.3 MSVC2013 OpenGL 64bit)
            Во время выполнения этапа «Сборка»

            В итоге получается ехешник, но с повреждённым хидером -> не запускается никак.

            при компиле release версии получаем:

            Цитата

            //проскипаны Варнинги

            link /NOLOGO /DYNAMICBASE /NXCOMPAT /INCREMENTAL:NO /SUBSYSTEM:WINDOWS «/MANIFESTDEPENDENCY:type=’win32′ name=’Microsoft.Windows.Common-Controls’ version=’6.0.0.0′ publicKeyToken=’6595b64144ccf1df’ language=’*’ processorArchitecture=’*’» /MANIFEST /MANIFESTFILE:releaseEditor.exe.embed.manifest /OUT:releaseEditor.exe @C:Usersuser_2AppDataLocalTempEditor.exe.4240.162428.jom
            LINK : fatal error LNK1105: не удается закрыть файл «releaseEditor.exe»
            jom: C:TempbuildMakefile.Release [releaseEditor.exe] Error 1105
            jom: C:TempbuildMakefile [release] Error 2
            16:45:16: Процесс «E:QtToolsQtCreatorbinjom.exe» завершился с кодом 2.
            Ошибка при сборке/установке проекта Editor (комплект: Desktop Qt 5.3 MSVC2013 OpenGL 64bit)
            Во время выполнения этапа «Сборка»

            Т.е. та же ошибка, но при этом ехешник есть и вполне запускаемый.

            Собственно что за беда с jom и с дебаг режимом? и как такое пофиксить?

            P.S. были опробованы х86 и х64 версии куте для ОГЛа под vs2013

            Сообщение отредактировано: imbaFireFenix — 18.07.14, 12:57


            JoeUser



            Сообщ.
            #2

            ,
            20.07.14, 23:13

              С правами на каталоги — все пучком?

              0 пользователей читают эту тему (0 гостей и 0 скрытых пользователей)

              0 пользователей:

              • Предыдущая тема
              • Кроссплатформенный C/C++: cl/gcc/Qt/Gtk+/WxWidgets
              • Следующая тема

              Рейтинг@Mail.ru

              [ Script execution time: 0,0281 ]   [ 16 queries used ]   [ Generated: 30.01.23, 02:27 GMT ]  

              Вы запускали qmake после внесения изменений в файл .pri?

              Обычно я бы попросил разъяснений в комментариях, но я новичок в Stack Overflow и еще не имею 50 репутации.

              Обновлено:

              Я нашел свой старый проект, с которым у меня правильно связан OpenCV3.1.0. Вот что у меня в .pro

              LIBS += -L*PATH TO OPEN CV*/OpenCV-3.1.0/lib
              
              
              INCLUDEPATH += *PATH TO OPEN CV*/OpenCV-3.1.0/include
              CONFIG(release, debug|release):{
                  LIBS += 
                      -lopencv_world310
              }
              
              CONFIG(debug, debug|release):{
                  LIBS += 
                      -lopencv_world310d
               }
              

              Да, каждый раз, когда я вношу изменения в коды, я буду запускать чистый, qmake пересобирать проект


              — jingweimo

              09.01.2019 17:39

              Я не уверен, что это сработает, но во всех моих pri-файлах я отделяю имена путей от имен библиотек. Так что в вашем случае это будет: Debug: { LIBS += L»c:/opencv-3.4.5/prebuild/x64/vc14/lib» -lopencv_world345d } Release: { LIBS += L»c:/opencv-3.4.5/prebuild/x64/vc14/lib» -lopencv_world345 }


              — Lambda1010

              09.01.2019 17:49

              Ты прав!! Ошибка связывания была вызвана моей конфигурацией OpenCV. Библиотеки не были признаны.


              — jingweimo

              09.01.2019 18:18

              Источник

              Я использую MS Visual C ++ 2010 Express, и я могу запустить проект один раз, и он будет работать отлично. Если я затем внесу какие-либо изменения в программу, а затем попытаюсь выполнить сборку, я получу следующую ошибку:

              1> ССЫЛКА: фатальная ошибка LNK1105: не удается закрыть файл ‘F: C ++ Projects Rastertek Projects Engine Debug Engine.exe’

              Перезагрузка компьютера исправляет ошибку, но только для 1 экземпляра программы. Я уже удалил файлы объемом 1 ГБ с флэш-накопителя USB 4 ГБ, на котором я выполняю все свои программы, и он по-прежнему выдает ошибку. Это моя недавняя проблема, так как в прошлом я мог работать над программами без проблем.

              0

              Решение

              Создайте командный файл и запустите его перед сборкой:

              taskkill /im engine.exe /f
              

              0

              Другие решения

              Других решений пока нет …

              Источник

              I use MS Visual C++ 2010 Express, and I can run a project once and it will work perfectly. If I then make any type of change whatsoever to the program, and then try to build then I get the following error:

              1>LINK : fatal error LNK1105: cannot close file ‘F:C++ ProjectsRastertek ProjectsEngineDebugEngine.exe’

              Restarting my computer fixes the error, but only for 1 instance of running the program. I already deleted 1GB worth of files off of the 4GB USB flash drive I do all of my programming on, and it still produces the error. This is a fairly recent problem of mine, as I could work on programs in the past with no issues.

              Источник

              Вопрос

              Я использую MS Visual C++ 2010 Express, и я могу запустить проект один раз, и он будет работать отлично. Если я затем внесу какие-либо изменения в программу, а затем попытаюсь выполнить сборку, то получу следующую ошибку:

              1>LINK : fatal error LNK1105: cannot close file ‘F:C++ ProjectsRastertek ProjectsEngineDebugEngine.exe’

              Перезагрузка компьютера исправляет ошибку, но только для 1 случая запуска программы. Я уже удалил файлы объемом 1 Гб с флешки USB на 4 Гб, на которой я программирую, и все равно выдает ошибку. Это моя недавняя проблема, так как раньше я мог работать с программами без проблем.

              0
              2016-12-12T16:20:51+00:00
              1

               JazzSoft

              [ Script execution time: 0,0281 ]   [ 16 queries used ]   [ Generated: 30.01.23, 02:27 GMT ]  

              Вы запускали qmake после внесения изменений в файл .pri?

              Обычно я бы попросил разъяснений в комментариях, но я новичок в Stack Overflow и еще не имею 50 репутации.

              Обновлено:

              Я нашел свой старый проект, с которым у меня правильно связан OpenCV3.1.0. Вот что у меня в .pro

              LIBS += -L*PATH TO OPEN CV*/OpenCV-3.1.0/lib
              
              
              INCLUDEPATH += *PATH TO OPEN CV*/OpenCV-3.1.0/include
              CONFIG(release, debug|release):{
                  LIBS += 
                      -lopencv_world310
              }
              
              CONFIG(debug, debug|release):{
                  LIBS += 
                      -lopencv_world310d
               }
              

              Да, каждый раз, когда я вношу изменения в коды, я буду запускать чистый, qmake пересобирать проект


              — jingweimo

              09.01.2019 17:39

              Я не уверен, что это сработает, но во всех моих pri-файлах я отделяю имена путей от имен библиотек. Так что в вашем случае это будет: Debug: { LIBS += L»c:/opencv-3.4.5/prebuild/x64/vc14/lib» -lopencv_world345d } Release: { LIBS += L»c:/opencv-3.4.5/prebuild/x64/vc14/lib» -lopencv_world345 }


              — Lambda1010

              09.01.2019 17:49

              Ты прав!! Ошибка связывания была вызвана моей конфигурацией OpenCV. Библиотеки не были признаны.


              — jingweimo

              09.01.2019 18:18

              Я использую MS Visual C ++ 2010 Express, и я могу запустить проект один раз, и он будет работать отлично. Если я затем внесу какие-либо изменения в программу, а затем попытаюсь выполнить сборку, я получу следующую ошибку:

              1> ССЫЛКА: фатальная ошибка LNK1105: не удается закрыть файл ‘F: C ++ Projects Rastertek Projects Engine Debug Engine.exe’

              Перезагрузка компьютера исправляет ошибку, но только для 1 экземпляра программы. Я уже удалил файлы объемом 1 ГБ с флэш-накопителя USB 4 ГБ, на котором я выполняю все свои программы, и он по-прежнему выдает ошибку. Это моя недавняя проблема, так как в прошлом я мог работать над программами без проблем.

              0

              Решение

              Создайте командный файл и запустите его перед сборкой:

              taskkill /im engine.exe /f
              

              0

              Другие решения

              Других решений пока нет …

              I use MS Visual C++ 2010 Express, and I can run a project once and it will work perfectly. If I then make any type of change whatsoever to the program, and then try to build then I get the following error:

              1>LINK : fatal error LNK1105: cannot close file ‘F:C++ ProjectsRastertek ProjectsEngineDebugEngine.exe’

              Restarting my computer fixes the error, but only for 1 instance of running the program. I already deleted 1GB worth of files off of the 4GB USB flash drive I do all of my programming on, and it still produces the error. This is a fairly recent problem of mine, as I could work on programs in the past with no issues.

              Вопрос

              Я использую MS Visual C++ 2010 Express, и я могу запустить проект один раз, и он будет работать отлично. Если я затем внесу какие-либо изменения в программу, а затем попытаюсь выполнить сборку, то получу следующую ошибку:

              1>LINK : fatal error LNK1105: cannot close file ‘F:C++ ProjectsRastertek ProjectsEngineDebugEngine.exe’

              Перезагрузка компьютера исправляет ошибку, но только для 1 случая запуска программы. Я уже удалил файлы объемом 1 Гб с флешки USB на 4 Гб, на которой я программирую, и все равно выдает ошибку. Это моя недавняя проблема, так как раньше я мог работать с программами без проблем.

              0
              2016-12-12T16:20:51+00:00
              1

              Ответ на вопрос

              12-го декабря 2016 в 6:17

              2016-12-12T18:17:06+00:00

              #32308696

              Создайте пакетный файл и запустите его перед сборкой:

              Понравилась статья? Поделить с друзьями:
            • Ошибка lnk1104 не удается открыть файл msvcrtd lib
            • Ошибка lnk1104 не удается открыть файл msvcprtd lib
            • Ошибка lnk1104 не удается открыть файл msmpi lib
            • Ошибка lnk1104 не удается открыть файл kernel32 lib
            • Ошибка lnk1104 не удается открыть файл glut32 lib