Eksik sembolü ( -lboost_system
) tanımlayan bir kitaplık ile bağlantı kurmak bariz çözümdür, ancak özel Boost.System durumunda, orijinal tasarımdaki bir yanlışlık onu gereksiz yere kullanır boost::system::generic_category()
ve boost::system::system_category()
gereksiz kılar . Bayrakla derleme, -DBOOST_SYSTEM_NO_DEPRECATED
bu kodu devre dışı bırakır ve bir dizi programın gerekmeden derlenmesine izin verir -lboost_system
(bu bağlantı, eğer kitaplığın özelliklerinden bazılarını açıkça kullanıyorsanız tabii ki hala gereklidir).
Boost 1.66'dan başlayarak ve bu commit , bu davranış artık varsayılandır, bu yüzden umarım daha az ve daha az sayıda kullanıcı bu cevaba ihtiyaç duyar.
@AndrewMarshall tarafından fark edildiği gibi, bir alternatif, BOOST_ERROR_CODE_HEADER_ONLY
kodun yalnızca başlık sürümüne izin veren tanımlamanın yapılmasıdır. Bu, bazı işlevleri bozabileceği için Boost tarafından önerilmedi . Bununla birlikte, 1.69'dan beri, yalnızca başlık varsayılan olarak görünüyor ve bu soruyu sözde geçersiz kılıyor.