Работает: gcc версии 4.2.1 (Apple Inc., сборка 5664)
Я создал проект Apple XCode с предварительно скомпилированным заголовком по умолчанию. Это кажется очень медленным, и тривиальный основной файл с основной функцией не включает код без кода, который компилируется за 6 секунд после того, как я обновился до нового SSD-накопителя. Я на ноутбуке, но у меня есть оговорки, что переход на рабочую станцию облегчит мою проблему. Если я отключу предварительно скомпилированный заголовок, то основной файл скомпилируется менее чем за секунду. Похоже, что использование предварительно скомпилированного заголовка накладывает штраф на все файлы. Эта задержка заставляет меня избегать компиляции и экспериментов с кодом, который не очень хорош. Вот что я включаю в свой предварительно скомпилированный заголовок:
#pragma once
#include <algorithm>
#include <bitset>
#include <complex>
#include <deque>
#include <fstream>
#include <functional>
#include <iostream>
#include <istream>
#include <iterator>
#include <limits>
#include <list>
#include <locale>
#include <map>
#include <numeric>
#include <ostream>
#include <queue>
#include <set>
#include <sstream>
#include <stack>
#include <stdexcept>
#include <streambuf>
#include <string>
#include <valarray>
#include <vector>
#include <boost/smart_ptr/scoped_ptr.hpp>
#include <boost/smart_ptr/scoped_array.hpp>
#include <boost/smart_ptr/shared_ptr.hpp>
#include <boost/smart_ptr/shared_array.hpp>
#include <boost/smart_ptr/make_shared.hpp>
#include <boost/smart_ptr/weak_ptr.hpp>
#include <boost/smart_ptr/intrusive_ptr.hpp>
#include <boost/regex.hpp>
#include <boost/thread.hpp>
#include <boost/bind/bind.hpp>
#include <boost/bind/apply.hpp>
#include <boost/bind/protect.hpp>
#include <boost/bind/make_adaptable.hpp>
#include <boost/asio.hpp>
//#include <boost/asio/ssl.hpp>
#include <boost/property_tree/ptree.hpp>
#include <boost/random.hpp>
#include <boost/lexical_cast.hpp>
#include <boost/date_time/gregorian/gregorian.hpp>
#include <boost/date_time/posix_time/posix_time.hpp>
#include <boost/date_time/local_time/local_time.hpp>
#include <boost/date_time/time_zone_base.hpp>
#include <boost/circular_buffer.hpp>
#include <boost/accumulators/accumulators.hpp>
#include <boost/accumulators/statistics.hpp>
Я не включил дух, который действительно увеличивает время компиляции.
include
s из нескольких источников. Это не относится к вам, поэтому я полагаю, что ваше время компиляции с использованием предварительно скомпилированных заголовков будет похоже на без него. То есть вы не получите большого выигрыша от использования предварительно скомпилированных заголовков. Вы действительно должны ограничить свои включения тем, что вам нужно на основе исходного файла. - person jedwards   schedule 09.06.2012