J'essaie de configurer mon projet dans VS2012 pour réussir à compiler et exécuter un code OSG pour le débogage. J'utilise également des bibliothèques de débogage OSG. La compilation et la liaison se terminent avec succès, mais après avoir exécuté le binaire, j'obtiens une erreur indiquant que MSVCR120D.dll
est manquant.
Je cherchais une solution à cette erreur toute la journée et cela n'a pas de sens pour moi, car j'utilise VS2012 qui devrait utiliser MSVCR110D.dll
. Je n'ai pas non plus cette DLL dans C:\Windows\System32
, il y a seulement MSVCR120.dll
et ses anciennes versions.
Si j'essaye de compiler le projet en mode release en utilisant les bibliothèques osg non-debug tout va bien et je peux normalement exécuter le projet sans erreur.
En référence à this question que j'essayais de jouer avec MFC
et Runtime Library
les paramètres mais seules les bibliothèques de versions fonctionnent.
J'ai besoin de l'exécuter avec des bibliothèques de débogage car je veux utiliser Visual Leak Detector qui ne fonctionne pas avec les bibliothèques de versions. Cela fait partie du code que j'utilise (les bibliothèques OSG sont compilées avec le même VS2012).
#include "stdafx.h"
#include <windows.h>
// osg libs
#include <osgViewer/Viewer>
int main(int argc, char **argv) {
osgViewer::Viewer viewer;
while (!viewer.done()) {
viewer.frame();
}
return 0;
}
Voici des captures d'écran des paramètres de mon projet à l'origine de l'erreur:
Paramètres généraux du projetsous-menu Génération de code C/C++
Au moins une des bibliothèques que vous utilisez est compilée à l'aide de VC12 (2013), alors recompilez-les (vous pouvez voir quelle bibliothèque est compilée sur VC12 à l'aide de Dependency Walker ou installez les redistribuables MSVC 2013 télécharger ici