एक पुस्तकालय है कि लापता प्रतीक (-lboost_system
) को परिभाषित करता है के साथ लिंक करना स्पष्ट समाधान है, लेकिन में Boost.System का विशेष मामला, मूल डिज़ाइन में एक गलतफहमी इसे boost::system::generic_category()
और boost::system::system_category()
को अनावश्यक रूप से उपयोग करता है। ध्वज के साथ संकलन -DBOOST_SYSTEM_NO_DEPRECATED
उस कोड को अक्षम करता है और -lboost_system
की आवश्यकता के बिना कई प्रोग्राम संकलित करने देता है (यदि आप स्पष्ट रूप से लाइब्रेरी की कुछ सुविधाओं का उपयोग करते हैं तो उस लिंक को अभी भी जरूरी है)।
बूस्ट 1.66 और this commit से शुरू हो रहा है, यह व्यवहार अब डिफ़ॉल्ट है, इसलिए उम्मीद है कि कम और कम उपयोगकर्ताओं को इस उत्तर की आवश्यकता होनी चाहिए।
जैसा कि @AndrewMarshall द्वारा देखा गया है, एक विकल्प BOOST_ERROR_CODE_HEADER_ONLY
को परिभाषित करना है जो कोड के शीर्षलेख-संस्करण को सक्षम बनाता है। हालांकि, यह बूस्ट द्वारा discouraged है क्योंकि यह कुछ कार्यक्षमता को तोड़ सकता है।
स्रोत
2015-06-16 20:38:30
यह एक कंपाइलर त्रुटि नहीं है, यह एक _linker_ त्रुटि है। आपको Boost.System लाइब्रेरी से लिंक करने की आवश्यकता है। – ildjarn