2011-10-23 1 views
2

J'ai un fichier qui a été testé et fonctionne comme prévu:Comment créer en-tête précompilé avec codeblocks et gcc

#ifndef PROMOTE_H_INCLUDED 
#define PROMOTE_H_INCLUDED 
#include <boost/mpl/vector.hpp> 
#include <boost/mpl/find.hpp> 
#include <boost/mpl/next.hpp> 
#include <boost/mpl/deref.hpp> 


template<class Integral> 
struct Promote 
{ 
    typedef boost::mpl::vector<char,short,int,long,long long> types; 
    typedef typename boost::mpl::find<types,Integral>::type this_type; 
    typedef typename boost:: mpl::next<this_type>::type next_type; 
    typedef typename boost::mpl::deref<next_type>::type type; 

}; 
#endif // PROMOTE_H_INCLUDED 

Chaque fois que je change quelque chose dans mon projet ce fichier est en cours d'élaboration maintes et maintes fois que est peu sill. J'ai essayé de rechercher net et j'ai trouvé:
http://gcc.gnu.org/onlinedocs/gcc/Precompiled-Headers.html Mais pour être honnête je ne vois juste pas là l'instruction comment créer l'en-tête précompilé. Alors, pourriez-vous, étape par étape, me dire comment le faire en utilisant code :: blocks?
merci.

Répondre

1

De la documentation vous lien:

To create a precompiled header file, simply compile it as you would any other file, if necessary using the -x option to make the driver treat it as a C or C++ header file.

Alors:

g++ -x c++ -o header.gch -c header.h 

pour le code C++ crée l'en-tête précompilés.

Cela ne va pas accélérer le processus de construction comme vous le souhaitez. Si vous modifiez cet en-tête, vous devrez également mettre à jour l'en-tête précompilé et toutes ses dépendances.

+1

alors où dans le code :: blocks je suis supposé le placer? – smallB

+0

http://wiki.codeblocks.org/index.php?title=Precompiled_headers – Mat

+0

-o ne peut pas être utilisé avec -c. C'est le message que je reçois de gcc – smallB

Questions connexes