I have a very large legacy code and it was using jsoncpp 0.6.0, but now a new 3rd party library has a dependency on jsoncpp 1.6.5. So I was trying to update the whole code to use 1.6.5. Even though the code compiles, it doesn't work during runtime because it fails to load one of the dynamic libraries properly because of an undefined symbol. so I am really confused and how to solve this.
- Why the code didn't complain during build?
- why do I have two assignment operator "Json::Value::operator=(...)? jsoncpp 1.6.5 has Json::Value::operator=(Json::Value), old one has the undefined symbol "Json::Value::operator=(Json::Value const&)". Do I still somehow has the old version somewhere? if so, how could I find it?
I can't put a simple code to be able to reproduce because I cannot reproduce this on a simple code.
here is the output of the command "nm -s --demangle mylib.so"
....
00000000007d1f40 R Json::Value::maxInt64
00000000007d1f48 R Json::Value::minInt64
00000000005eec50 T Json::Value::initBasic(Json::ValueType, bool)
00000000007d1f38 R Json::Value::maxUInt64
U Json::Value::operator=(Json::Value const&)
00000000005edeb0 T Json::Value::operator=(Json::Value)
00000000005eeda0 T Json::Value::Value(bool)
00000000005eed40 T Json::Value::Value(double)
00000000005eec80 T Json::Value::Value(int)
00000000005eecb0 T Json::Value::Value(unsigned int)
00000000005eedd0 T Json::Value::Value(Json::ValueType)
00000000005eee70 T Json::Value::Value(char const*)
....
Thanks.