La manipulation stdafx.h à croix-plate-forme de code

J'ai un Visual Studio C++ qui utilise les en-têtes précompilés (stdafx.h). Maintenant, nous sommes le portage de l'application pour Linux avec gcc 4.x.

La question est de savoir comment gérer les en-tête précompilé dans les deux environnements.
J'ai googlé, mais ne peut pas venir à une conclusion.

Évidemment, je veux laisser stdafx.h dans Visual Studio depuis la base de code est assez grand et les en-têtes précompilés boost moment de la compilation.

Mais la question est de savoir quoi faire dans Linux. C'est ce que j'ai trouvé:

  1. Quitter le stdafx.h comme est. gcc compile le code considérables plus vite que VC++ (ou c'est juste ma machine Linux est plus fort ... 🙂 ), j'ai donc peut-être heureux avec cette option.
  2. Utilisation de l'approche de ici - faire stdafx.h ressembler (set USE_PRECOMPILED_HEADER pour VS uniquement):

    #ifdef USE_PRECOMPILED_HEADER
    ... my stuff
    #endif 
  3. Utiliser l'approche de ici - compiler VC++ avec /FI à implicitement inclure stdafx.h dans chaque fichier cpp. Par conséquent, VS, votre code peut être commutée facilement à être compilé sans les en-têtes précompilés et pas de code devra être changé.

    Personnellement, je l'aversion des dépendances et le désordre stdafx.h est de pousser une grosse base de code vers. Par conséquent, l'option est intéressant pour moi, sur Linux, vous n'avez pas stdafx.h, tout en étant capable de tourner sur les en-têtes précompilés sur VS par /FI seulement.

  4. Sur Linux compiler stdafx.h seulement comme un en-tête précompilé (imiter Visual Studio)

Votre avis? Il existe d'autres approches pour traiter le problème?

InformationsquelleAutor dimba | 2009-07-27