La recherche Google de base problème bigobj montre que beaucoup de gens connaissent Erreur fatale C1128 : " le nombre de sections a dépassé le format de fichier objet limit: compiler avec/bigobj ". L'erreur a plus de chances de se produire si l'on utilise fortement une bibliothèque de modèles C++, comme Bibliothèques Boost ou Bibliothèques CGAL .
Cette erreur est étrange, car elle donne la solution à elle-même: définissez le indicateur du compilateur /bigobj
!
Voici donc ma question: pourquoi ce drapeau n'est-il pas défini par défaut? Il doit y avoir une pénalité en utilisant ce drapeau, sinon il serait défini par défaut. Cette pénalité n'est pas documentée dans MSDN. Quelqu'un a-t-il une idée?
Je pose la question car je me demande si le système de configuration de CGAL ne devrait pas définir /bigobj
par défaut.
La documentation mentionne un inconvénient important pour /bigobj
:
Les éditeurs de liens fournis avant Visual C++ 2005 ne peuvent pas lire les fichiers .obj produits avec
/bigobj
.
Par conséquent, la définition de cette option par défaut limiterait le nombre d'éditeurs de liens pouvant consommer les fichiers d'objets résultants. Mieux vaut l'activer au besoin.