Astuces DotNet (Sébastien Courtois)

03/05/2010

[Visual C++ 2008/2010] Résoudre une “Fatal error LNK1104: cannot open file ‘kernel32.lib’”

Filed under: Non classé — sebastiencourtois @ 14:38

Me remettant doucement au C++ après environ 5 ans de C#, je suis tombé sur l’erreur suivate lors de mon “Hello World” :

fatal error LNK1104: cannot open file ‘kernel32.lib’

Ok j’ai peut être perdu la main mais le problème ne vient pas de moi en l’occurrence🙂. Il s’agit d’un problème de configuration. Visual C++ n’arrive pas à trouver la librairie kernel32.lib.

Je cherche donc dans les propriétés du projet comme j’avais l’habitude de le faire au temps de Visual 5/6 sans pour autant trouver les problèmes de chemin vers les bibliothèques.

Suite à la visite d’un blog, j’ai découvert que l’installation et/ou la mise à jour de Windows SDK pouvait entrainer l’erreur ci-dessus. Lorsque je regarde le dossier C:\Program Files\Microsoft SDKs\Windows\ contenant deux répertoires V6.0 et V6.0A. Chacun de ces dossiers contient les fichiers includes/libs/dll/exe permettant de faire fonctionner le SDK. Lors de la mise à jour, je pense que les dossiers libs du V6.0 ont été supprimé (puisque devenu inutile car présent dans le V6.0A). Le problème c’est que la mise à jour oublie de modifier la clé de registre indiquant l’endroit où se trouve le nouveau SDK.

La solution : Modifier dans HKEY_CURRENT_USER\Software\Microsoft\Microsoft SDKs\Windows   la clé CurrentInstallFolder de “C:\Program Files\Microsoft SDKs\Windows\v6.0\” ==> “C:\Program Files\Microsoft SDKs\Windows\v6.0A\”. Vous pouvez aussi le faire pour les clés filles de ce noeud.

Il est nécessaire de relancer Visual Studio afin que les nouveaux chemins soient pris en compte.

Si vous avez des remarques ou une meilleure explication que la mienne pour la raison de ce problème, n’hésitez pas à commenter.

PS : A la suite de cette dure reprise du C++, j’ai décidé d’arrêter pour la journée et de me remettre dans mon élément : le C#🙂

Un commentaire »

  1. il semble y avoir une manière de faire un peu plus orthodoxe sans toucher à la base de registres : http://astyle.sourceforge.net/vsinstall.html

    Commentaire par Julien — 02/03/2012 @ 14:01


RSS feed for comments on this post. TrackBack URI

Laisser un commentaire

Entrez vos coordonnées ci-dessous ou cliquez sur une icône pour vous connecter:

Logo WordPress.com

Vous commentez à l'aide de votre compte WordPress.com. Déconnexion / Changer )

Image Twitter

Vous commentez à l'aide de votre compte Twitter. Déconnexion / Changer )

Photo Facebook

Vous commentez à l'aide de votre compte Facebook. Déconnexion / Changer )

Photo Google+

Vous commentez à l'aide de votre compte Google+. Déconnexion / Changer )

Connexion à %s

Propulsé par WordPress.com.

%d blogueurs aiment cette page :