Ich habe versucht, eine Bibliothek (nennen wir es LibB
) zu einem Programm (TheProgram
), die bereits eine andere Bibliothek verknüpft (LibA
) zu verknüpfen.RuntimeLibrary stimmt nicht überein, obwohl die richtigen Flags an alle Objekte übergeben werden?
Die Debug-Konfiguration baut in Ordnung, aber im Release-Modus bekomme ich diesen Fehler:
error LNK2038: mismatch detected for 'RuntimeLibrary': value 'MT_StaticRelease' doesn't match value 'MTd_StaticDebug' in TheProgram.obj
Ich dachte, das ist einfach zu beheben, weil ich nur sicher vornehmen müssen, dass jede der verknüpften Objekte gebaut werden mit/MT. Ich tat es, und sie alle sind es. Ich habe auch überprüft, ob es irgendwelche Einstellungen pro Datei gibt, die das Laufzeit-Flag in dieser Konfiguration anders haben - es gibt keine. Auch die letzte Befehlszeile im Build überprüft - es ist/MT überall.
Noch interessanter, wenn ich die Debug-Version von LibB
verknüpfen (beim Erstellen der Release-Konfiguration), verschwindet dieser Fehler, aber ich bekomme andere Fehler.
Was könnte die Übereinstimmung trotz der übereinstimmenden Flags überall verursachen?