2009-06-15 6 views
0

J'utilise le compilateur cl.exe de Visual Studio 2005. Je l'appelle avec un tas de/I/D et quelques drapeaux de compilation/optimisation (exemple:/Ehsc).cl.exe Différence dans les fichiers objet lorsque la sortie/E est la même et que les indicateurs sont les mêmes

J'ai deux scripts de compilation, et les deux ne diffèrent que par les drapeaux/I (les répertoires include sont différents). Tous les autres drapeaux sont les mêmes. Ces scripts produisent différents fichiers objets (et pas seulement une différence d'horodatage comme indiqué ci-dessous). La chose étrange est que la sortie/E des deux scripts est la même. Cela signifie que les fichiers include ne causent pas la différence dans les fichiers objet, mais là encore, d'où vient la différence? Quelqu'un peut-il m'expliquer comment je vois deux fichiers objets différents dans ma situation? Si les fichiers include causent la différence, comment se fait-il que je vois une sortie identique/E?

PS. Les fichiers objets sont différents non seulement dans l'horodatage, mais aussi dans les sections de code. En fait, le comportement de mon exécutable final est différent dans les deux cas.

Editer: PSS: J'ai même regardé la sortie/includeFiles de cl.exe et cette sortie est identique. Les fichiers objets, cependant, diffèrent dans plus que l'horodatage (en fait, 1KB est plus grand qu'un autre!)

Répondre

0

Je suppose que vous incluez des fichiers d'en-tête qui #define certaines constantes de préprocesseur que votre code dépend à son tour sur. Vous avez déjà mentionné que le comportement de votre exécutable est différent. Si vous avez un code différent, alors les fichiers objets peuvent bien sûr différer en taille.

Si tel est le cas, la sortie/E ne devrait-elle pas être différente? Le drapeau/E donne la sortie du préprocesseur.

Bon point! Donc, si vous utilisez/P (identique à/E mais au fichier), les fichiers générés sont exactement identiques?

+0

Si tel est le cas, la sortie/E ne devrait-elle pas être différente? Le drapeau/E donne la sortie du préprocesseur. –

Questions connexes