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 quitter 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é:
- Quitter l'
stdafx.h
comme c'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. -
L'utilisation de l'approche à partir d' ici - faire
stdafx.h
ressemblent (setUSE_PRECOMPILED_HEADER
pour VS uniquement):#ifdef USE_PRECOMPILED_HEADER ... my stuff #endif
Utiliser l'approche à partir d' ici - compiler VC++ avec
/FI
pour implicitement comprennentstdafx.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ésordrestdafx.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 d'stdafx.h
, tout en étant capable de tourner sur les en-têtes précompilés sur VS en/FI
seulement.- 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?