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à:
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?
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
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.
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!
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'
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.
J'ai eu cette erreur irrécupérable erreur lnk1104: impossible d'ouvrir le fichier 'kernel32.lib' .
Dans mon cas, il s’agit de C:\Program Files\SDK Microsoft\Windows\v6.0A\Lib
Je vous remercie.