libboost 1.58 & boost::STATIC_ASSERTION_FAILURE

____________________________________________________________________

error: invalid application of ‘sizeof’ to incomplete type ‘boost::STATIC_ASSERTION_FAILURE’
BOOST_STATIC_ASSERT_MSG(

Yukarıdaki hatayı Boost 1.58 ile obj/rpcrawtransaction.cpp dosyasında alıyorsanız ve bu araştırırken bu sayfaya gelmişseniz konuyu zaten biliyorsunuzdur, açıklamaya gerek yok. Libboost güncellemelerinden birinde strict_get kullanmak için yapılan bir değişiklikten dolayı Boost 1.58 ile bu hata alınabiliyor. Çözümü Boost 1.57 kullanmak ya da relaxed_get kullanmak ya da hatanın alındığı obj/rpcrawtransaction.cpp dosyasındaki ufak bir kısmı değiştirmek. Hataya sebep olan kod şu:

const CScriptID& hash = boost::get(address);

Dosya içerisinde yukarıdaki kodu bulup onu aşağıdaki kod ile değiştirip kaydettiğinizde make komutu başarılı bir şekilde çalışmaya devam edecek.

const CScriptID& hash = boost::get(address);