Message d’erreur lorsque vous utilisez le compilateur de Visual C++ 2008 : « erreur fatale C1859 »

Symptômes

Lorsque vous exécutez le compilateur Microsoft Visual C++ 2008 pour compiler des fichiers ou pour générer un projet, le message d’erreur suivant s’affiche :

Erreur irrécupérable C1859 : nom de fichier d’en-tête inattendue précompilé, réexécutez le compilateur peut résoudre ce problème.

En outre, ce problème persiste même lorsque vous exécutez le compilateur à nouveau. Ce problème se produit lorsque vous activez l’option de compilateur de Création/utilisation d’un en-tête précompilé sur un ordinateur qui exécute Windows 7 ou Windows Server 2008.

Remarque Vous pouvez rencontrer ce problème plus fréquemment si vous activez l’option du compilateur /Analyze .

Cause

Lorsque vous activez l'option de compilateur de Création/utilisation d'un en-tête pré-compilé, le compilateur requiert que les fichiers d'en-tête pré-compilés et les modules relatifs ne soient pas déplacés entre les compilations. Toutefois, la fonctionnalité de randomisation du format d’espace adresse (aussi appelée ASLR) déplace aléatoirement des modules dans un processus. Par conséquent, l'erreur se produit lorsque les modules se déplacent entre les compilations.

Résolution

Informations sur le correctif

Un correctif pris en charge est disponible auprès de Microsoft. Toutefois, ce correctif vise à corriger uniquement le problème décrit dans cet article. Appliquez ce correctif uniquement aux systèmes rencontrant ce problème spécifique. Ce correctif va peut-être subir des tests supplémentaires. Par conséquent, si vous n'êtes pas sérieusement concerné par ce problème, nous vous recommandons d'attendre la prochaine mise à jour logicielle qui contiendra ce correctif.

Pour télécharger ce correctif à partir de la galerie de Code Microsoft Developer Network (MSDN), visitez le site Web de Microsoft à l’adresse suivante :

http://code.msdn.microsoft.com/KB976656
Remarque MSDN Code Gallery affiche les langues pour lesquelles ce correctif est disponible. Si vous ne voyez pas votre langue, c'est certainement dû au fait que la page de ressource Code Gallery n'existe pas dans cette langue.


Remarque Si des problèmes supplémentaires se produisent ou si des procédures de dépannage sont nécessaires, vous devrez peut-être formuler une demande de service distincte. Les coûts habituels du support technique s'appliqueront aux questions et problèmes qui ne relèvent pas de ce correctif logiciel. Pour une liste complète des numéros de téléphone du Service clientèle et support technique de Microsoft ou pour créer une demande de service distincte, visitez le site Web de Microsoft à l'adresse suivante :

http://support.microsoft.com/contactus/?ws=supportRemarque Vous pouvez également télécharger ce correctif sur le site Web de Microsoft à l’adresse suivante :

https://connect.microsoft.com/VisualStudio/Downloads/DownloadDetails.aspx?DownloadID=25785Remarque : Ce correctif logiciel contient également un correctif pour « C1001 : une erreur interne s’est produite dans le compilateur (compilateur fichier f:\dd\vctools\compiler\utc\src\p2\main.c, ligne 182) lorsque vous utilisez le .NET framework 3.5.

Conditions préalables

Vous devez disposer de Microsoft Visual Studio 2008 Service Pack 1 pour appliquer ce correctif.

Nécessite un redémarrage

Vous n’êtes pas obligé de redémarrer l’ordinateur après avoir appliqué le correctif logiciel si aucune instance de Visual Studio n’est utilisé.

Informations de remplacement du correctif

Ce correctif ne remplace aucun autre correctif.

Informations sur les fichiers


La version anglaise de ce correctif dispose des attributs de fichier (ou version ultérieure) répertoriés dans le tableau suivant. Les dates et heures de ces fichiers sont répertoriées en temps universel coordonné (UTC). Lorsque vous affichez les informations de fichier, elles sont converties en heure locale. Pour trouver la différence entre l’UTC et l’heure locale, utilisez la
Fuseau horaire
onglet dans le
Date et heure
élément dans le panneau de configuration.

Nom de fichier

Version de fichier

Taille du fichier

Date

Heure

C1.dll

15.0.30729.4455

677,184

10-Dec-2009

02:31

C1.dll

15.0.30729.4455

828,744

10-Dec-2009

02:31

C1xx.dll

15.0.30729.4455

2,202,952

10-Dec-2009

02:31

C1xx.dll

15.0.30729.4455

2,213,704

10-Dec-2009

02:31

C1xx.dll

15.0.30729.4455

2,348,360

10-Dec-2009

02:31

C1xx.dll

15.0.30729.4455

2,504,016

10-Dec-2009

02:31

C1xx.dll

15.0.30729.4455

2,890,568

10-Dec-2009

02:31

Solution de contournement

Pour contourner ce problème, appliquez l’une des méthodes suivantes.


Méthode 1

Désactiver l’option du compilateur /Analyze s’il est activé.

Méthode 2

Démarrer une génération propre.

Méthode 3

Redémarrez l'ordinateur.

Méthode 4

Désactivez l’option de compilateur de Création/utilisation d’un en-tête précompilé .


Remarque Il ne sont pas garantis que ces méthodes fonctionnent. Même si vous utilisez une de ces méthodes, vous pouvez toujours rencontrer ce problème.

État

Microsoft a confirmé l'existence de ce problème dans les produits Microsoft répertoriés dans la section « S'applique à ».

Plus d'informations

Pour plus d’informations sur la randomisation du format d’espace d’adresse, consultez le billet de blog suivant de Microsoft :

Adresse de randomisation du format d’espace dans Windows VistaPour plus d’informations sur les erreurs d’un en-tête précompilé, consultez le billet de blog suivant de Microsoft :

Erreurs d’en-tête précompilés dans Windows 7

Besoin d’aide ?

Développez vos compétences
Découvrez des formations
Accédez aux nouvelles fonctionnalités en avant-première
Rejoindre Microsoft Insider

Ces informations vous ont-elles été utiles ?

Dans quelle mesure êtes-vous satisfait(e) de la qualité de la traduction ?

Qu’est-ce qui a affecté votre expérience ?

Avez-vous d’autres commentaires ? (Facultatif)

Nous vous remercions pour vos commentaires.

×