web-dev-qa-db-fra.com

erreur ne peut pas ouvrir le fichier 'kernel32.lib'

J'ai installé VS2013 et VS2015 sur Windows 7.

J'ai un projet C++ Dll existant qui était en train de construire, mais maintenant, tout à coup, il ne se construit pas avec VS2015 et me donne l'erreur:

LINK : fatal error LNK1104: cannot open file 'kernel32.lib'

De cette publication: erreur irrécupérable LNK1104: impossible d'ouvrir le fichier 'kernel32.lib' / je suis allé à la recherche du fichier kernel32.lib et il se trouve ici:

C:\Program Files (x86)\Windows Kits\8.1\Lib\winv6.3\um\x86

Quand je vais dans mes projets Propriétés -> lieur -> entrée et que je sélectionne des macros, je vois que ce chemin est bien là:

 enter image description here

Ma plate-forme d'outils est définie sur Visual Studio 2013 - Windows XP (v120_xp), ce qui correspond à sa configuration initiale.

Pourquoi mon projet s'est-il soudainement arrêté de construire? Qu'est-ce qui aurait pu mal tourner?

6
Harry Boy

J'ai eu ce problème similaire aujourd'hui avec Visual Studio 2013 lorsque j'ai changé mes répertoires VC++:

Projet-> Propriétés-> Répertoires VC++: Inclure les répertoires

1
João Luis

J'ai eu le même problème aujourd'hui. Il s'est avéré que le SDK 10.0.15063.0 s'est installé sur mon système, mais sans les fichiers Desktop C++. En sélectionnant le SDK dans la liste des programmes installés, en effectuant une modification d'installation, puis en sélectionnant les options de Desktop C++, les fichiers nécessaires ont été ajoutés et je peux maintenant créer un nouveau lien.

1
Werner Henze

Si la cause est un plug-in/extension qui modifie vos fichiers de propriétés, il se peut que les paramètres "Répertoires Visual C++" de votre projet soient modifiés.

Ainsi, la solution qui a fonctionné pour moi est décrite dans ma propre réponse Impossible de compiler des projets Visual Studio 2010 64 bits , que je transcris intégralement ici:

Après avoir demandé de l'aide à un collègue, nous avons constaté que même obtenir Nettoyer les constructions des projets de TFS, avec l’option de réécriture, le Propriétés de configuration du projet> Répertoires VC++ sur mon ordinateur étaient toujours différents des autres ordinateurs. 

En cherchant plus, nous avons trouvé la solution dans le dernier message de Reset include/lib path , que je vais entièrement transcrire:

utilisez "del% HOMEPATH%\AppData\Local\Microsoft\MSBuild\v4.0\Microsoft.Cpp.Win32.user.props" n'est pas toujours la bonne façon . Il vaut mieux utiliser "del% USERPROFILE%\AppData\Local\Microsoft\MSBuild\v4.0\Microsoft.Cpp.Win32.user.props" où le dossier de données de l'application est normalement placé.

Ensuite, j'ai regardé à l'intérieur du contenu de Microsoft.Cpp.x64.user.props et j'ai vu qu'il y avait des choses ajoutées par Visual Leaks Detector . Ce qui est raisonnable, car un mois auparavant, j’ai fait une analyse de fuite de mémoire en utilisant VLD.

Donc, j'ai supprimé le fichier et maintenant tout compile bien à 64bits!

1
sergiol

J'ai eu ce problème similaire aujourd'hui avec Visual Studio 2017. Ma cause s'est avérée être un paramètre d'environnement incorrect dans NETFXSDKDir, plus précisément:

NETFXSDKDir=C:\Program Files (x86)\Windows Kits\NETFXSDK\4.6.1

Il devait avoir une valeur de:

C:\Program Files (x86)\Windows Kits\10\Lib\10.0.10240.0\um\x86

J'ai une réponse plus détaillée ici:

Erreur irrécupérable LNK1104: impossible d'ouvrir le fichier 'kernel32.lib'

0
gojimmypi

J'ai eu cette mise à jour suivante de certains projets de VS2013 à VS2017.

Le projet d'origine a été modifié manuellement dans l'élément "Répertoires de bibliothèque" sous Répertoires VC++ dans les paramètres du projet.
Cela signifiait qu'il ne récupérait pas les modifications de la mise à niveau. 

L'utilisation de cette option rétablira le fonctionnement correct (en supposant que le SDK est installé correctement), à condition que rien d'autre que la valeur par défaut ne soit nécessaire. Dans mon cas, il essayait de pointer sur le SDK v7.1 mais cela n’était pas installé pour vs2017.

0
Pete

J'ai eu cette erreur irrécupérable erreur lnk1104: impossible d'ouvrir le fichier 'kernel32.lib' .

  1. studio visuel ouvert 2008
  2. aller à Outils - options - Projets et solutions - Répertoires VC++ - *
  3. puis dans le coin droit, sélectionnez Fichiers de la bibliothèque
  4. ici vous devez ajouter le chemin de kernel132.lib

Dans mon cas, il s’agit de C:\Program Files\SDK Microsoft\Windows\v6.0A\Lib

Je vous remercie.

0
Varun Challa