Quelles sont les implications de l'utilisation de /Zi vs /Z7 pour Visual Studio C++ projets?

Fond

Il y a plusieurs différents les indicateurs de débogage vous pouvez utiliser avec Visual Studio C++ compilateur. Ils sont:

  • (aucun)
    • Créer aucune information de débogage
    • Plus rapide temps de compilation
  • /Z7
    • Produire toute la symbolique des informations de débogage dans le .obj fichiers à l'aide de format CodeView
  • /Zi
    • Produire toute la symbolique des informations de débogage dans un .fichier pdb de la cible à l'aide du Programme de format de Base de données.
    • Permet la prise en charge pour un minimum de reconstruit (/Gm) qui peuvent réduire le temps nécessaire pour la recompilation.
  • /ZI
    • Produire des informations de débogage comme /Zi, sauf avec le soutien de Modifier et Continuer

Questions

  • L' /Gm drapeau est incompatible avec la /MP drapeau pour Plusieurs Processus s'appuie (Visual Studio 2005/2008)

  • Si vous souhaitez activer minimale reconstruit, puis de la /Zi du pavillon est nécessaire au cours de la /Z7 drapeau.

  • Si vous allez utiliser le commutateur /MP, il n'y a apparemment pas de différence entre /Z7 et /Zi la recherche sur le site MSDN. Cependant, la SCons documentation indique que vous devez utiliser /Z7 à l'appui des constructions parallèles.

Questions

  • Quelles sont les implications de l'utilisation de /Zi vs /Z7 dans un Visual Studio C++ projet?

  • Existe-il d'autres pros ou les inconvénients de ces deux options que j'ai manqué?

  • Plus précisément, quel est l'avantage d'un seul Programme format de Base de données (APB) fichier de la cible vs plusieurs CodeView format (.obj) des fichiers pour chaque source?

Références

MDSN /Z7, /Zi, /ZI (Informations de Débogage Format)

MSDN /MP (Build avec Plusieurs Processus)

SCons Construction des Variables CCPDBFLAG

Les Informations De Débogage