Thursday, January 8, 2015

Fixing "Fatal Error LNK1123 : Failure During Conversion to COFF, File Invalid or Corrupt" in VS 2010

Seperti terlihat pada judul entrinya, disini akan diperlihatkan cara untuk menangani error pada visual studio 2010 untuk lnk1123 tersebut. Sebelumnya error tersebut terjadi karena ada beberapa hal. Kalau saya sendiri, error tersebut terjadi karena microsoft net framework yang ada di PC diupgrade ke 4.5. Sedangkan visual studio 2010 sendiri menggunakan versi yang lebih lama. Nah pada saat kita akan menjalankan program C++(MFC) di visual studio tersebut, maka error tersebut akan terjadi. Tapi untuk program yang buat C# normal-normal saja. Hal lain yang dapat menyebabkan error seperti ini adalah apabila kita mempunyai visual studio 2010 dan visual studio yang lebih baru misalnya 2012 atw 2013 di PC. Kemudian kita akan menjalankan program C++ di vs 2010, nah kondisi seperti ini pun dapat menghasilkan error link1123.

Sebenarnya error tersebut terjadi karena linker visual studio berusaha menjalankan file cvtres.exe. Ketika net framework terupgrade, maka cvtres.exe terjadi ada 2 biji, satu dari VS 2010 dan satunya lagi dari net framework yang baru. Kemudian karena cvtres.exe ada yang terupdgrade maka cvtres.exe yang lama tidak dapat digunakan lagi padahal path visual studio 2010 itu masih terhubung ke cvtres.exe yang versi lama.

Jadi solusinya adalah atur kembali path visual studio ke cvtres.exe yang baru. Solusi lain yang dapat digunakan adalah mengubah nama cvtres.exe tersebut, misalnya ke cvtres-old.exe. Jika telah diubah, maka visual studio secara otomatis akan mencari cvtres.exe versi yang terbaru sehingga pengaturan pathnya tidak usah kita handle sendiri. Ngomong-ngomong, disini digunakan teknik yang kedua, yaitu mengubah nama cvtres.exe menjadi cvtres-old.exe. Jadi silahkan buka lokasi file tersebut, kalo di PC yang saya gunakan lokasinya ada di C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\bin, seperti terlihat di bawah :


Nah silahkan ubah file cvtres.exe tersebut. Click continu aja jika harus memperoleh administrator permission :
Setelah diubah :

Sampai disini, ketika program C++ (MFC) kita jalankan kembali, maka error lnk1123 tersebut sudah tidak ada dan program dapat kembali berjalan normal.



Sekian... semoga bermanfaat.... :-)

4 comments: