digitalmars.D.learn - msgpack unresolved question
- Dan (30/31) Oct 23 2012 I got msgpack and was trying out an example (compare_json.d) and
- Dan (11/19) Oct 24 2012 No answer yet, but the errors look very similar to those run into
- Jesse Phillips (7/18) Oct 25 2012 It is a linker error. You need to compile the msgpack.d file and
- Dan (19/23) Oct 25 2012 Thanks. I tried your suggestion but had no luck (same link
- Jesse Phillips (8/8) Oct 25 2012 Hmm, I can reproduce. It is caused by the call to pack in
- Masahiro Nakagawa (13/39) Nov 03 2012 Hi Dan,
I got msgpack and was trying out an example (compare_json.d) and I get an unresolved error. Not sure what I'm doing wrong... https://github.com/msgpack/msgpack-d/blob/master/src/msgpack.d I think length is built in for associative arrays? Thanks Dan The error and lines of code is: ----- /tmp/.rd.../objs/compare_json.o: In function `const( trusted void function(ref msgpack.Packer!(std.array.Appender!(ubyte[]).Appender).Packer)) msgpack.Value.toMsgpack!(msgpack.Packer!(std.array.Appender!(ubyte[]).Appender).Packer).toMsgpack': /home/dbdavidson/stage/msgpack-d/src/msgpack.d:2967: undefined reference to ` property ulong object.AssociativeArray!(msgpack.Value, const(msgpack.Value)).AssociativeArray.length()' case Type.array: packer.beginArray(via.array.length); foreach (elem; via.array) elem.toMsgpack(packer); break; case Type.map:foreach (key, value; via.map) { key.toMsgpack(packer); value.toMsgpack(packer); } break; } -----packer.beginMap(via.map.length);
Oct 23 2012
On Tuesday, 23 October 2012 at 13:40:00 UTC, Dan wrote:/tmp/.rd.../objs/compare_json.o: In function `const( trusted void function(ref msgpack.Packer!(std.array.Appender!(ubyte[]).Appender).Packer)) msgpack.Value.toMsgpack!(msgpack.Packer!(std.array.Appender!(ubyte[]).Appender).Packer).toMsgpack': /home/dbdavidson/stage/msgpack-d/src/msgpack.d:2967: undefined reference to ` property ulong object.AssociativeArray!(msgpack.Value, const(msgpack.Value)).AssociativeArray.length()'No answer yet, but the errors look very similar to those run into here: http://www.digitalmars.com/d/archives/digitalmars/D/Something_wrong_with_dmd_s_-c_command_162601.html back in March. Wish I knew how that was resolved. When I tried to use msgpack my steps were: - git clone the msgpack project - edit my dmd.conf file and add a -I to the src folder of msgpack. - run rdmd on the .../example/compare_json.d Thanks Dan
Oct 24 2012
On Wednesday, 24 October 2012 at 11:19:08 UTC, Dan wrote:No answer yet, but the errors look very similar to those run into here: http://www.digitalmars.com/d/archives/digitalmars/D/Something_wrong_with_dmd_s_-c_command_162601.html back in March. Wish I knew how that was resolved. When I tried to use msgpack my steps were: - git clone the msgpack project - edit my dmd.conf file and add a -I to the src folder of msgpack. - run rdmd on the .../example/compare_json.d Thanks DanIt is a linker error. You need to compile the msgpack.d file and tell the linker where to find it. The simplest way is to just throw the file on the command line. dmd compare_json.d msgpack.d This kind of have some details about what you are doing:
Oct 25 2012
On Thursday, 25 October 2012 at 17:59:40 UTC, Jesse Phillips wrote:It is a linker error. You need to compile the msgpack.d file and tell the linker where to find it. The simplest way is to just throw the file on the command line. dmd compare_json.d msgpack.dThanks. I tried your suggestion but had no luck (same link error). It could be my command is still wrong. Or maybe it is something related to associative arrays? The reason I suggest this is there is another example in the directory (custom.d) which uses functionality in msgpack and builds and runs fine without my specifying msgpack.d on the command line. Thanks Dan dmd /.../msgpack-d/example/compare_json.d /.../msgpack-d/src/msgpack.d compare_json.o: In function `_D7msgpack5Value83__T9toMsgpackTS7msgpack50__T6PackerTS3std5array16__T8AppenderTAhZ8AppenderZ6PackerZ9toMsgpackMxFNeKS7msgpack50__T6PackerTS3std5array16__T8AppenderTAhZ8AppenderZ6PackerZv': /.../msgpack-d/src/msgpack.d:(.text._D7msgpack5Value83__T9toMsgpackTS7msgpack50__T6PackerTS3std5array16__T8AppenderTAhZ8AppenderZ6PackerZ9toMsgpackMxFNeKS7msgpack50__T6PackerTS3std5array16__T8AppenderTAhZ8Append rZ6PackerZv+0x1aa): undefined reference to `_D6object55__T16AssociativeArrayTS7msgpack5ValueTxS7msgpack5ValueZ16AssociativeArray6lengthMFNdZm' collect2: ld returned 1 exit status --- errorlevel 1
Oct 25 2012
Hmm, I can reproduce. It is caused by the call to pack in function 2. void f2() { unpack(pack(mpObj)); } I get the feeling this may be a compiler bug, I'm not seeing anything used that isn't part of those two files or Phobos.
Oct 25 2012
Hi Dan, Sorry for the delay. Your mail is referred to as spam in Gmail... I also got same error in compare_json.d, and I agree with Jesse. "pragma(msg, typeof(via.map.length));" returns 'ulong' during compilation. But the linker error occurred in the runtime. Now, I have no idea to resolve it in library. Give me some time to think it over. Thanks, Masahiro On Thursday, 25 October 2012 at 18:50:55 UTC, Dan wrote:On Thursday, 25 October 2012 at 17:59:40 UTC, Jesse Phillips wrote:It is a linker error. You need to compile the msgpack.d file and tell the linker where to find it. The simplest way is to just throw the file on the command line. dmd compare_json.d msgpack.dThanks. I tried your suggestion but had no luck (same link error). It could be my command is still wrong. Or maybe it is something related to associative arrays? The reason I suggest this is there is another example in the directory (custom.d) which uses functionality in msgpack and builds and runs fine without my specifying msgpack.d on the command line. Thanks Dan dmd /.../msgpack-d/example/compare_json.d /.../msgpack-d/src/msgpack.d compare_json.o: In function `_D7msgpack5Value83__T9toMsgpackTS7msgpack50__T6PackerTS3std5array16__T8AppenderTAhZ8AppenderZ6PackerZ9toMsgpackMxFNeKS7msgpack50__T6PackerTS3std5array16__T8AppenderTAhZ8AppenderZ6PackerZv': /.../msgpack-d/src/msgpack.d:(.text._D7msgpack5Value83__T9toMsgpackTS7msgpack50__T6PackerTS3std5array16__T8AppenderTAhZ8AppenderZ6PackerZ9toMsgpackMxFNeKS7msgpack50__T6PackerTS3std5array16__T8AppenderTAhZ8Append rZ6PackerZv+0x1aa): undefined reference to `_D6object55__T16AssociativeArrayTS7msgpack5ValueTxS7msgpack5ValueZ16AssociativeArray6lengthMFNdZm' collect2: ld returned 1 exit status --- errorlevel 1
Nov 03 2012