суббота, 8 марта 2014 г.

Visual Studio 2010 решение проблемы с fatal error LNK1123



 Изображение взято отсюда

При работе с различными версиями Visual Studio и .Net Frameworks иногда возникают досадные неувязки. Далее о том, что делать, если линкер при сборке C++ проекта ругается следующим образом

LINK : fatal error LNK1123: failure during conversion to COFF: file invalid or corrupt

 

Почему такое случается?


1)Вы запускаете VS 2010 после установки VS 2012.
2) Был установлен новый .Net Framework 4.5
3) Файлы .Net Framework 4 не в порядке (повреждены или удалены)
4) Файлы VS 2010 не в порядке.

Как решить проблему для одного проекта?

 

Чтобы ваш проект линковал в не инкрементальном режиме можно установить в опциях проекта Linker->General->Incremental Linking значение NO. Это, конечно, имеет свои последствия, но зато обходит нашу текущую проблему.



Как решить проблему?


1,2) Для этих вариантов есть 2 пути решения
  • Удалить .Net Framework 4.5 и установить .Net Framework 4
  • Подменить файл cvtres.exe версии VS2010 версией VS2012 (Обычно они лежат C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\bin\cvtres.exe, C:\Program Files (x86)\Microsoft Visual Studio 11.0\VC\bin\cvtres.exe соответственно)
3,4) В остальных случаях просто переустановите соответствующие пакеты.

Удачного дэбага!


13 комментариев:

  1. Спасибо, подмена файла реально помогла.

    ОтветитьУдалить
  2. Так же можно обновить Visual Studio 2010 RTM до версии VS 2010 SP1. Не знаю какая версия у меня стояла, RTM или еще какая, но обновление мне помогло.
    Я просто не хотел удалять .Net Framework 4.5, просто у меня есть программы которые могут его использовать(точно не знаю, но вдруг) и что бы подменить файл тоже не было возможности так как я не ставил visual studio 2012.
    Обновление есть на официальном сайте microsoft. Вот ссылка, где можно загрузить обновление - http://www.microsoft.com/en-us/download/details.aspx?id=23691

    ОтветитьУдалить
  3. а я просто удалил файл cvtres.exe из папки bin и все заработало! пока не знаю, выльется ли это потом в какие-нибудь плохие последствия!))

    ОтветитьУдалить
  4. Мне тоже помогло удаление файла, а никакая замена не помогла.

    ОтветитьУдалить
  5. Помогло удаление cvtres.exe

    ОтветитьУдалить
  6. И правда:) Удаление файла "cvtres.exe" лечит проблему. Пока.
    Я на всякий случай оставил копию.

    ОтветитьУдалить
  7. Удалил файл "cvtres.exe" и все работает. Слава Господу!

    ОтветитьУдалить
  8. на машине vs 2010, потом был установлен vs2015, помогла замена старого файла

    ОтветитьУдалить
  9. Удалил "cvtres.exe" - заработало.

    ОтветитьУдалить