¿Cómo resuelvo el siguiente error de vinculador w.r.t jsoncpp operator =.
Creo un Json::Value
objeto como este
Json::Value pt;
pt["type"] = 5;
pt["uuid"] = "f8c74622-d45e-4cfa-fe00-5e7042431c72";
pt["start frame"] = 10;
pt["duration"] = 20;
pt["payload"] = "aedddefffsadf";
Esto da el siguiente error de vinculador cuando intento enlazar con el libjsoncpp-dev predeterminado que se incluye con Ubuntu 14.04
referencia indefinida a `Json :: Value :: operator = (Json :: Value)"
Información extra:
Y no obtengo este error de vinculador cuando se compila y vincula con el último jsoncpp de GitHub.
value.h (instalado por ubuntu apt) en / usr / include / jsoncpp / json tiene
Value &operator=( const Value &other );
y el último valor de jsoncpp.h tiene
Value &operator=(Value other);
Respuestas
0 para la respuesta № 1Debian se envía con jsoncpp-0.6.0-rc2
. Apuesto a que Ubuntu también lo hace.
Simplemente cambia a jsoncpp-0.8.z
que son compatible con binarios 0.6.0-rc2
e incluye la mayoría de las mejoras y correcciones de errores de 1.y.z
.
En realidad, Debian está cambiando a 0.8.z
ahora. Hasta que Ubuntu actualice su versión enviada, es posible que tenga que evitar nuevas funciones (principalmente la Constructores) y en su lugar use los Lectores / Escritores desaprobados, que probablemente sea lo que ya está haciendo. Así que debería ser fácil para ti hacer que todo funcione.