HomeBlogMagic

Linker fehler __imp__invalid_parameter und _CrtDbgReport in VS

Heute hatte ich einen Fehler beim statischen linken einer EXE bekommen:

CStringUtil.obj : error LNK2001: unresolved external symbol _CrtDbgReport

Ein anderes mal lautete der Fehler so:

CStringUtil.obj : error LNK2001: unresolved external symbol __imp__invalid_parameter

Beide Probleme hatten die gleiche Ursache. Die Einstellungen beim Linker für das statische linken mit den vcruntimes war falsch gesetzt. Folgende Werte sind richtig:

  • Runtime Library Debug: Multi-threaded Debug DLL (/MTd)
  • Runtime Library Release: Multi-threaded Debug DLL (/MT)

Es sei nochmal erwähnt dass es hier Absicht ist statisch zu linken, da einige Lösungen aus dem Netz vorschlagen man solle doch die Runtime "richtig" auf shared zu stellen.