Как создать скомпилированный заголовок с кодовыми блоками и gcc - PullRequest
2 голосов
/ 23 октября 2011

У меня есть файл, который был протестирован и работает по назначению:

#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  

Каждый раз, когда я что-то изменяю в своем проекте, этот файл компилируется снова и снова, что является незначительным.Я попытался выполнить поиск в сети, и обнаружил:
http://gcc.gnu.org/onlinedocs/gcc/Precompiled-Headers.html Но, если честно, я просто нигде не вижу инструкции по созданию предварительно скомпилированного заголовка.Так может кто-нибудь, шаг за шагом сказать мне, как это сделать, используя code :: blocks?
спасибо.

1 Ответ

1 голос
/ 23 октября 2011

Из документов, на которые вы ссылаетесь:

Чтобы создать предварительно скомпилированный заголовочный файл, просто скомпилируйте его, как и любой другой файл, при необходимости с помощью опции -x, чтобы драйвер рассматривал его как заголовочный файл C или C ++.

Итак:

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

для кода C ++ создаст предварительно скомпилированный заголовок.

Это не ускорит процесс сборки так, как вы этого хотите. Если вы измените этот заголовок, вам также потребуется обновить предварительно скомпилированный заголовок и все его зависимости.

...