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