Nous avons passé les points répertoriés sur MSDN WRT à cette erreur (sauf pour # 5). Trois personnes différentes sur des machines différentes rencontrent le même problème. Le PDB est créé, mais échoue quelque part au milieu.LNK1201 Visual C++ 2010 Grand projet ne pas générer de PDB
Détails:
- 67 bibliothèques statiques
- 4,27 GB des bibliothèques statiques
- 1048575 octets - taille de l'APB lorsque linker ne
- Les deux dernières méga-octets de l'APB sont nuls (zéro de
- La génération de version réussit & produit un PDB (nous l'avons allumer, sans informations de débogage dans l'exe)
- Sortie PDB de construction est juste au-dessous de 1 GB.
Nous avons désactivé les scanneurs de virus. Regardé avec procmon.exe et vu aucune interaction de suspicions avec la PDB lorsque l'éditeur de liens a échoué.
Related question suggère ~ 1 Go limite sur PDB - quelqu'un/moyen de confirmer cela?
MISE À JOUR & SOLUTION:
@Barry et l'équipe de chrome ont mis au point la solution. Here est le correctif du système de génération Chromium qui implémente la résolution.
Détails
L'APB utilise un système de fichiers virtuel interne: MSF. Lorsque l'éditeur de liens crée le fichier PDB, il a par défaut une taille de page de 2 Ko (apparemment non configurable). Apparemment & heureusement, quand le compilateur crée sa PDB, la taille de la page est de 4 Ko. Ce PDB du compilateur peut être hissé et utilisé comme base pour le lieur PDB.
Une meilleure solution En tant que événement pré-Link sur le projet qui est un lien de votre exe ou dll nous pouvons hisser le compilateur pour générer notre nécessaire APB initial:
cl -c "dummy_empty.cpp" /Zi /Fd"$(TargetDir)$(TargetName).pdb"
Solution originale
Créez un projet de bibliothèque statique C++ avec un fichier cpp vide, configurez le 'Nom du fichier de base de données Porgram' pour sortir autre chose que le fichier par défaut. Utilisez certains événements de génération de projet (j'ai utilisé 'Pre-Link Event') pour copier dans la PDB précédemment créée dans l'endroit où vous attendez le Linker (voir Linker-> Generate Program Database File) pour créer sa PDB. Heureusement, l'éditeur de liens adoptera le format PDB copié et utilisera sa taille de page de 4 Ko. Cela permettra d'acheter du temps, et de l'espace permettant jusqu'à 2 Go PDB.
Les constructions incrémentielles étaient connues pour causer de tels problèmes. Est-ce que cela se produit lors d'une reconstruction complète après un nettoyage? –
Oui, cela se passe sur build & rebuild. Je crois que les liens incrémentaux sont désactivés, mais nous vérifions deux fois. – Zac