रनिंग: जीसीसी संस्करण 4.2.1 (एप्पल इंक 5664 का निर्माण)बूस्ट + जीसीसी + precompiled शीर्ष लेख के साथ धीरे संकलन समय
मैं एक डिफ़ॉल्ट precompiled शीर्ष लेख के साथ एक सेब XCode प्रोजेक्ट बनाया। यह बहुत धीमा प्रतीत होता है, और एक मुख्य कार्य फ़ाइल के साथ एक छोटी मुख्य फ़ाइल में संकलन के लिए 6 सेकंड लगते हैं, जो कि मैं एक नए एसएसडी ड्राइव में अपग्रेड करने के बाद होता हूं। मैं एक लैपटॉप पर हूं, लेकिन मेरे पास आरक्षण है जो वर्कस्टेशन में अपग्रेड करने से मेरी समस्या कम हो जाएगी। अगर मैं प्रीकंपील्ड हेडर बंद कर देता हूं तो मुख्य फ़ाइल एक सेकेंड के अंदर संकलित होती है। ऐसा लगता है कि एक प्रीकंपील्ड हेडर का उपयोग करके सभी फाइलों में जुर्माना लगाया जाता है। यह देरी मुझे कोड के साथ संकलन और प्रयोग से बचना चाहता है जो अच्छा नहीं है।
#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>
मैं आत्मा, जो वास्तव में संकलन समय ऊपर जाना बनाता है शामिल नहीं किया है: यहाँ मैं अपने precompiled शीर्ष लेख में शामिल कर रहा हूँ क्या है।
तो एक मुख्य कार्य के साथ एक छोटी सी मुख्य फ़ाइल में कोई कोड शामिल नहीं है "ऊपर सूचीबद्ध सभी सुविधाओं के साथ एक परियोजना की तुलना में संकलन करने में बहुत कम समय लगता है? क्या इसकी उम्मीद नहीं की जानी चाहिए? – jedwards
इसके अलावा, प्रीकंपील्ड हेडर की मेरी समझ यह है कि वे केवल संकलन समय को सहेजते हैं, अन्यथा उन्हें कई स्रोतों से 'शामिल' के माध्यम से बार-बार संकलित किया जाएगा। यह आपके लिए मामला नहीं है, इसलिए मैं कल्पना करता हूं कि प्रीकंपील्ड हेडर का उपयोग करने के साथ आपके संकलन समय के बिना समान होगा। यही है, आप precompiled हेडर का उपयोग करके एक लाभ का एहसास नहीं होगा। आपको स्रोत-फ़ाइल-विशिष्ट आधार पर आपको जो कुछ चाहिए उसे वास्तव में सीमित करना चाहिए। – jedwards
और इसका क्या अर्थ है: "यह देरी मुझे कोड के साथ संकलन और प्रयोग से बचना चाहती है जो अच्छा नहीं है।" – jedwards