2012-10-18 33 views
14

मेरी परियोजना बूस्ट के iostreams w/bzip2 के पुराने संस्करण का उपयोग कर रही थी। अब मैं बूस्ट 1.51 में अपग्रेड करने की कोशिश कर रहा हूं। सबसे पहले मैंने bzip के साथ संकलित नहीं किया था, इसलिए स्पष्ट रूप से मुझे लिंकर मिल गया है libboost_bzip2-vc100-mt-sgd-1_51.lib अनुपलब्ध है। मैंने इस फ़ाइल को संकलित करने के लिए these instructions (और स्थिर ध्वज जोड़ा) का पालन किया।bzip के साथ iostreams बूस्ट करें - अनसुलझे प्रतीकों

>error LNK2001: unresolved external symbol "protected: __thiscall boost::iostreams::detail::bzip2_base::~bzip2_base(void)" ([email protected]@[email protected]@@[email protected]) 
>error LNK2001: unresolved external symbol "protected: __thiscall boost::iostreams::detail::bzip2_base::bzip2_base(struct boost::iostreams::bzip2_params const &)" ([email protected]@[email protected]@@[email protected][email protected]@@Z) 
>error LNK2001: unresolved external symbol "int const boost::iostreams::bzip2::stream_end" ([email protected]@[email protected]@@3HB) 
... 

कोई भी विचार कैसे आ lib यह सब कोड शामिल नहीं है:

हालांकि, अब लिंकर चल लापता प्रतीकों में से एक गुच्छा देता है? मैं क्या खो रहा हूँ? मैं विंडोज़ पर वीएस -2010 का उपयोग कर रहा हूं।


संपादित करें: समझ गया!

libboost_iostreams-vc100-mt-sgd-1_51.lib का पुराना संस्करण था जो bzip के बिना संकलित किया गया था। क्या मैं अब भी के बारे में यकीन नहीं है यह है: अपने मूल संकलन के लिए मैं प्रयोग किया है:

>b2 --with-iostreams -sBZIP2_SOURCE=D:\Work\external\bzip2-1.0.6 -sZLIB_SOURCE=d:\work\external\zlib-1.2.3 runtime-link=static 

यह निम्न फ़ाइलों का उत्पादन:

libboost_bzip2-vc100-mt-s-1_51.lib 
libboost_bzip2-vc100-mt-sgd-1_51.lib 

"सही" संकलन के लिए (कि समस्या हल) मैंने उपयोग किया:

>b2 --with-iostreams -sBZIP2_SOURCE=D:\Work\external\bzip2-1.0.6 runtime-link=static 

आईई बस zlib हटा दिया, क्योंकि यह मेरे लिए अनावश्यक था। यह उत्पादित:

libboost_bzip2-vc100-mt-s-1_51.lib 
libboost_bzip2-vc100-mt-sgd-1_51.lib 
libboost_iostreams-vc100-mt-s-1_51.lib 
libboost_iostreams-vc100-mt-sgd-1_51.lib 

मूल संकलन पर iostreams libs का उत्पादन कैसे नहीं किया गया? बहुत अजीब।

धन्यवाद।

+3

समाधान के साथ अपने प्रश्न को संपादित करने के बजाय, इसे उचित उत्तर के रूप में रखें और इसे स्वीकार करें। –

+4

कोशिश की, लेकिन क्योंकि मैंने थोड़ी देर पहले पंजीकरण किया था जाहिर है कि मेरे पास अपने प्रश्नों के उत्तर देने के लिए पर्याप्त प्रतिष्ठा नहीं है ... –

+0

@ ई.के. प्रतिष्ठा बढ़ाने के लिए कुछ और StackOverflow साइटों में लॉगिन करने का प्रयास करें। –

उत्तर

1

से E.K. के जवाब में सवाल:

libboost_iostreams-vc100-MT-SGD-1_51.lib के एक पुराने संस्करण है कि bzip बिना संकलित किया गया था। क्या मैं अब भी के बारे में यकीन नहीं है यह है: अपने मूल संकलन के लिए मैं प्रयोग किया है:

>b2 --with-iostreams -sBZIP2_SOURCE=D:\Work\external\bzip2-1.0.6 -sZLIB_SOURCE=d:\work\external\zlib-1.2.3 runtime-link=static 

यह निम्न फ़ाइलों का उत्पादन:

libboost_bzip2-vc100-mt-s-1_51.lib 
libboost_bzip2-vc100-mt-sgd-1_51.lib 

"सही" संकलन के लिए (कि समस्या हल) मैंने उपयोग किया:

>b2 --with-iostreams -sBZIP2_SOURCE=D:\Work\external\bzip2-1.0.6 runtime-link=static 

आईई बस zlib हटा दिया, क्योंकि यह मेरे लिए अनावश्यक था। यह उत्पादित:

libboost_bzip2-vc100-mt-s-1_51.lib 
libboost_bzip2-vc100-mt-sgd-1_51.lib 
libboost_iostreams-vc100-mt-s-1_51.lib 
libboost_iostreams-vc100-mt-sgd-1_51.lib 

मूल संकलन पर iostreams libs का उत्पादन कैसे नहीं किया गया? बहुत अजीब।