Giter Club home page Giter Club logo

Comments (6)

xunzhang avatar xunzhang commented on June 29, 2024

Hi @tuhangdi . Where did you install the msgpackC library and include? Could you compile the following codes and successfully run it? If not, what is the error?

g++ -std=c++11 main.cc -lmsgpackC

// main.cc
#include <vector>
#include <msgpack.hpp>
int main(int argc, char *argv[])
{
  std::vector<std::string> target;
  target.push_back("Hello,");
  target.push_back("World!");
  msgpack::sbuffer sbuf;  // simple buffer
  msgpack::pack(&sbuf, target);
  msgpack::unpacked msg;    // includes memory pool and deserialized object
  msgpack::unpack(&msg, sbuf.data(), sbuf.size());
  msgpack::object obj = msg.get();
  std::vector<std::string> result;
  obj.convert(&result);
  return 0;
}

I think you need to install MsgpackC >=1.4.2 like https://github.com/douban/paracel/blob/master/.travis.yml#L49

from paracel.

tuhangdi avatar tuhangdi commented on June 29, 2024

library path in /usr/local/lib, include path in /usr/local/include, i can compile and run it but output nothing.

from paracel.

xunzhang avatar xunzhang commented on June 29, 2024

what is your MsgpackC version: cat /usr/local/include/msgpack/version_master.h?
Could you cat the /home/tuhangdi/paracel-master/build/CMakeFiles/CMakeError.log here?

from paracel.

tuhangdi avatar tuhangdi commented on June 29, 2024

[tuhangdi@node3 build]$ cat /usr/local/include/msgpack/version_master.h
#define MSGPACK_VERSION_MAJOR 2
#define MSGPACK_VERSION_MINOR 1
#define MSGPACK_VERSION_REVISION 0

cat /home/tuhangdi/paracel-master/build/CMakeFiles/CMakeError.log

Determining if the pthread_create exist failed with the following output:
Change Dir: /home/tuhangdi/paracel-master/build/CMakeFiles/CMakeTmp

Run Build Command:"/usr/bin/gmake" "cmTC_84116/fast"
/usr/bin/gmake -f CMakeFiles/cmTC_84116.dir/build.make CMakeFiles/cmTC_84116.dir/build
gmake[1]: 进入目录“/home/tuhangdi/paracel-master/build/CMakeFiles/CMakeTmp”
Building C object CMakeFiles/cmTC_84116.dir/CheckSymbolExists.c.o
/usr/bin/cc     -o CMakeFiles/cmTC_84116.dir/CheckSymbolExists.c.o   -c /home/tuhangdi/paracel-master/build/CMakeFiles/CMakeTmp/CheckSymbolExists.c
Linking C executable cmTC_84116
/usr/local/bin/cmake -E cmake_link_script CMakeFiles/cmTC_84116.dir/link.txt --verbose=1
/usr/bin/cc       CMakeFiles/cmTC_84116.dir/CheckSymbolExists.c.o  -o cmTC_84116 -rdynamic 
CMakeFiles/cmTC_84116.dir/CheckSymbolExists.c.o:在函数‘main’中:
CheckSymbolExists.c:(.text+0x16):对‘pthread_create’未定义的引用
collect2: 错误:ld 返回 1
gmake[1]: *** [cmTC_84116] 错误 1
gmake[1]: 离开目录“/home/tuhangdi/paracel-master/build/CMakeFiles/CMakeTmp”
gmake: *** [cmTC_84116/fast] 错误 2

File /home/tuhangdi/paracel-master/build/CMakeFiles/CMakeTmp/CheckSymbolExists.c:
/* */
#include <pthread.h>

int main(int argc, char** argv)
{
  (void)argv;
#ifndef pthread_create
  return ((int*)(&pthread_create))[argc];
#else
  (void)argc;
  return 0;
#endif
}

Determining if the function pthread_create exists in the pthreads failed with the following output:
Change Dir: /home/tuhangdi/paracel-master/build/CMakeFiles/CMakeTmp

Run Build Command:"/usr/bin/gmake" "cmTC_c0b78/fast"
/usr/bin/gmake -f CMakeFiles/cmTC_c0b78.dir/build.make CMakeFiles/cmTC_c0b78.dir/build
gmake[1]: 进入目录“/home/tuhangdi/paracel-master/build/CMakeFiles/CMakeTmp”
Building C object CMakeFiles/cmTC_c0b78.dir/CheckFunctionExists.c.o
/usr/bin/cc    -DCHECK_FUNCTION_EXISTS=pthread_create   -o CMakeFiles/cmTC_c0b78.dir/CheckFunctionExists.c.o   -c /usr/local/share/cmake-3.7/Modules/CheckFunctionExists.c
Linking C executable cmTC_c0b78
/usr/local/bin/cmake -E cmake_link_script CMakeFiles/cmTC_c0b78.dir/link.txt --verbose=1
/usr/bin/cc   -DCHECK_FUNCTION_EXISTS=pthread_create    CMakeFiles/cmTC_c0b78.dir/CheckFunctionExists.c.o  -o cmTC_c0b78 -rdynamic -lpthreads 
/usr/bin/ld: cannot find -lpthreads
collect2: 错误:ld 返回 1
gmake[1]: *** [cmTC_c0b78] 错误 1
gmake[1]: 离开目录“/home/tuhangdi/paracel-master/build/CMakeFiles/CMakeTmp”
gmake: *** [cmTC_c0b78/fast] 错误 2


Performing C++ SOURCE FILE Test MsgpackC_CHECK_FINE failed with the following output:
Change Dir: /home/tuhangdi/paracel-master/build/CMakeFiles/CMakeTmp

Run Build Command:"/usr/bin/gmake" "cmTC_6b82d/fast"
/usr/bin/gmake -f CMakeFiles/cmTC_6b82d.dir/build.make CMakeFiles/cmTC_6b82d.dir/build
gmake[1]: 进入目录“/home/tuhangdi/paracel-master/build/CMakeFiles/CMakeTmp”
Building CXX object CMakeFiles/cmTC_6b82d.dir/src.cxx.o
/usr/bin/c++    -I/usr/local/include  -Wall -std=c++11 -pthread -DMsgpackC_CHECK_FINE   -o CMakeFiles/cmTC_6b82d.dir/src.cxx.o -c /home/tuhangdi/paracel-master/build/CMakeFiles/CMakeTmp/src.cxx
/home/tuhangdi/paracel-master/build/CMakeFiles/CMakeTmp/src.cxx: 在函数‘int main(int, char**)’中:
/home/tuhangdi/paracel-master/build/CMakeFiles/CMakeTmp/src.cxx:12:49: 错误:对‘unpack(msgpack::v1::unpacked*, char*, size_t)’的调用没有匹配的函数
   msgpack::unpack(&msg, sbuf.data(), sbuf.size());
                                                 ^
/home/tuhangdi/paracel-master/build/CMakeFiles/CMakeTmp/src.cxx:12:49: 附注:备选是:
In file included from /usr/local/include/msgpack/unpack.hpp:16:0,
                 from /usr/local/include/msgpack.hpp:14,
                 from /home/tuhangdi/paracel-master/build/CMakeFiles/CMakeTmp/src.cxx:3:
/usr/local/include/msgpack/v2/unpack.hpp:145:31: 附注:msgpack::v1::object_handle msgpack::v2::unpack(const char*, std::size_t, std::size_t&, bool&, msgpack::v1::unpack_reference_func, void*, const msgpack::v1::unpack_limit&)
 inline msgpack::object_handle unpack(
                               ^
/usr/local/include/msgpack/v2/unpack.hpp:145:31: 附注: 备选需要 7 实参,但提供了 3 个
/usr/local/include/msgpack/v2/unpack.hpp:171:31: 附注:msgpack::v1::object_handle msgpack::v2::unpack(const char*, std::size_t, std::size_t&, msgpack::v1::unpack_reference_func, void*, const msgpack::v1::unpack_limit&)
 inline msgpack::object_handle unpack(
                               ^
/usr/local/include/msgpack/v2/unpack.hpp:171:31: 附注:  no known conversion for argument 1 from ‘msgpack::v1::unpacked* {aka msgpack::v1::object_handle*}’ to ‘const char*’
/usr/local/include/msgpack/v2/unpack.hpp:180:31: 附注:msgpack::v1::object_handle msgpack::v2::unpack(const char*, std::size_t, bool&, msgpack::v1::unpack_reference_func, void*, const msgpack::v1::unpack_limit&)
 inline msgpack::object_handle unpack(
                               ^
/usr/local/include/msgpack/v2/unpack.hpp:180:31: 附注:  no known conversion for argument 1 from ‘msgpack::v1::unpacked* {aka msgpack::v1::object_handle*}’ to ‘const char*’
/usr/local/include/msgpack/v2/unpack.hpp:189:31: 附注:msgpack::v1::object_handle msgpack::v2::unpack(const char*, std::size_t, msgpack::v1::unpack_reference_func, void*, const msgpack::v1::unpack_limit&)
 inline msgpack::object_handle unpack(
                               ^
/usr/local/include/msgpack/v2/unpack.hpp:189:31: 附注:  no known conversion for argument 1 from ‘msgpack::v1::unpacked* {aka msgpack::v1::object_handle*}’ to ‘const char*’
/usr/local/include/msgpack/v2/unpack.hpp:199:13: 附注:void msgpack::v2::unpack(msgpack::v1::object_handle&, const char*, std::size_t, std::size_t&, bool&, msgpack::v1::unpack_reference_func, void*, const msgpack::v1::unpack_limit&)
 inline void unpack(
             ^
/usr/local/include/msgpack/v2/unpack.hpp:199:13: 附注: 备选需要 8 实参,但提供了 3 个
/usr/local/include/msgpack/v2/unpack.hpp:228:13: 附注:void msgpack::v2::unpack(msgpack::v1::object_handle&, const char*, std::size_t, std::size_t&, msgpack::v1::unpack_reference_func, void*, const msgpack::v1::unpack_limit&)
 inline void unpack(
             ^
/usr/local/include/msgpack/v2/unpack.hpp:228:13: 附注: 备选需要 7 实参,但提供了 3 个
/usr/local/include/msgpack/v2/unpack.hpp:238:13: 附注:void msgpack::v2::unpack(msgpack::v1::object_handle&, const char*, std::size_t, bool&, msgpack::v1::unpack_reference_func, void*, const msgpack::v1::unpack_limit&)
 inline void unpack(
             ^
/usr/local/include/msgpack/v2/unpack.hpp:238:13: 附注: 备选需要 7 实参,但提供了 3 个
/usr/local/include/msgpack/v2/unpack.hpp:248:13: 附注:void msgpack::v2::unpack(msgpack::v1::object_handle&, const char*, std::size_t, msgpack::v1::unpack_reference_func, void*, const msgpack::v1::unpack_limit&)
 inline void unpack(
             ^
/usr/local/include/msgpack/v2/unpack.hpp:248:13: 附注:  no known conversion for argument 1 from ‘msgpack::v1::unpacked* {aka msgpack::v1::object_handle*}’ to ‘msgpack::v1::object_handle&’
/usr/local/include/msgpack/v2/unpack.hpp:260:24: 附注:msgpack::v2::object msgpack::v2::unpack(msgpack::v1::zone&, const char*, std::size_t, std::size_t&, bool&, msgpack::v1::unpack_reference_func, void*, const msgpack::v1::unpack_limit&)
 inline msgpack::object unpack(
                        ^
/usr/local/include/msgpack/v2/unpack.hpp:260:24: 附注: 备选需要 8 实参,但提供了 3 个
/usr/local/include/msgpack/v2/unpack.hpp:285:24: 附注:msgpack::v2::object msgpack::v2::unpack(msgpack::v1::zone&, const char*, std::size_t, std::size_t&, msgpack::v1::unpack_reference_func, void*, const msgpack::v1::unpack_limit&)
 inline msgpack::object unpack(
                        ^
/usr/local/include/msgpack/v2/unpack.hpp:285:24: 附注: 备选需要 7 实参,但提供了 3 个
/usr/local/include/msgpack/v2/unpack.hpp:295:24: 附注:msgpack::v2::object msgpack::v2::unpack(msgpack::v1::zone&, const char*, std::size_t, bool&, msgpack::v1::unpack_reference_func, void*, const msgpack::v1::unpack_limit&)
 inline msgpack::object unpack(
                        ^
/usr/local/include/msgpack/v2/unpack.hpp:295:24: 附注: 备选需要 7 实参,但提供了 3 个
/usr/local/include/msgpack/v2/unpack.hpp:305:24: 附注:msgpack::v2::object msgpack::v2::unpack(msgpack::v1::zone&, const char*, std::size_t, msgpack::v1::unpack_reference_func, void*, const msgpack::v1::unpack_limit&)
 inline msgpack::object unpack(
                        ^
/usr/local/include/msgpack/v2/unpack.hpp:305:24: 附注:  no known conversion for argument 1 from ‘msgpack::v1::unpacked* {aka msgpack::v1::object_handle*}’ to ‘msgpack::v1::zone&’
/home/tuhangdi/paracel-master/build/CMakeFiles/CMakeTmp/src.cxx:15:22: 错误:对‘msgpack::v2::object::convert(std::vector<std::basic_string<char> >*)’的调用没有匹配的函数
   obj.convert(&result);
                      ^
/home/tuhangdi/paracel-master/build/CMakeFiles/CMakeTmp/src.cxx:15:22: 附注:备选是:
In file included from /usr/local/include/msgpack/object_fwd.hpp:17:0,
                 from /usr/local/include/msgpack/v1/adaptor/adaptor_base_decl.hpp:14,
                 from /usr/local/include/msgpack/adaptor/adaptor_base_decl.hpp:13,
                 from /usr/local/include/msgpack/adaptor/adaptor_base.hpp:13,
                 from /usr/local/include/msgpack/v1/object_decl.hpp:16,
                 from /usr/local/include/msgpack/object_decl.hpp:14,
                 from /usr/local/include/msgpack/object.hpp:13,
                 from /usr/local/include/msgpack.hpp:10,
                 from /home/tuhangdi/paracel-master/build/CMakeFiles/CMakeTmp/src.cxx:3:
/usr/local/include/msgpack/v2/object_fwd.hpp:60:8: 附注:T& msgpack::v2::object::convert(T&) const [with T = std::vector<std::basic_string<char> >*]
     T& convert(T& v) const { return v1::object::convert(v); }
        ^
/usr/local/include/msgpack/v2/object_fwd.hpp:60:8: 附注:  no known conversion for argument 1 from ‘std::vector<std::basic_string<char> >*’ to ‘std::vector<std::basic_string<char> >*&’
In file included from /usr/local/include/msgpack/object.hpp:16:0,
                 from /usr/local/include/msgpack.hpp:10,
                 from /home/tuhangdi/paracel-master/build/CMakeFiles/CMakeTmp/src.cxx:3:
/usr/local/include/msgpack/v2/object.hpp:22:30: 附注:msgpack::v1::object::implicit_type msgpack::v2::object::convert() const
 inline object::implicit_type object::convert() const
                              ^
/usr/local/include/msgpack/v2/object.hpp:22:30: 附注: 备选需要 0 实参,但提供了 1 个
gmake[1]: *** [CMakeFiles/cmTC_6b82d.dir/src.cxx.o] 错误 1
gmake[1]: 离开目录“/home/tuhangdi/paracel-master/build/CMakeFiles/CMakeTmp”
gmake: *** [cmTC_6b82d/fast] 错误 2

Return value: 1
Source file was:

#include <vector>
#include <msgpack.hpp>
int main(int argc, char *argv[])
{
  std::vector<std::string> target;
  target.push_back("Hello,");
  target.push_back("World!");
  msgpack::sbuffer sbuf;  // simple buffer
  msgpack::pack(&sbuf, target);
  msgpack::unpacked msg;    // includes memory pool and deserialized object
  msgpack::unpack(&msg, sbuf.data(), sbuf.size());
  msgpack::object obj = msg.get();
  std::vector<std::string> result;
  obj.convert(&result);
  return 0;
}

from paracel.

xunzhang avatar xunzhang commented on June 29, 2024

I had an offline interactive talk with @tuhangdi on Google Hangout, this issue is solved now. Since he installed Msgpack-C v2.1.0 which is not backward compatible.

His error message is below compiling this program:

[tuhangdi@node3 msgpack-c]$ g++ -std=c++11 main.cc -lmsgpackC 
main.cc: 在函数‘int main(int, char**)’中:
main.cc:11:49: 错误:对‘unpack(msgpack::v1::unpacked*, char*, size_t)’的调用没有匹配的函数
   msgpack::unpack(&msg, sbuf.data(), sbuf.size());
                                                 ^
main.cc:11:49: 附注:备选是:
In file included from /usr/local/include/msgpack/unpack.hpp:16:0,
                 from /usr/local/include/msgpack.hpp:14,
                 from main.cc:2:
/usr/local/include/msgpack/v2/unpack.hpp:145:31: 附注:msgpack::v1::object_handle msgpack::v2::unpack(const char*, std::size_t, std::size_t&, bool&, msgpack::v1::unpack_reference_func, void*, const msgpack::v1::unpack_limit&)
 inline msgpack::object_handle unpack(
                               ^
/usr/local/include/msgpack/v2/unpack.hpp:145:31: 附注: 备选需要 7 实参,但提供了 3 个
/usr/local/include/msgpack/v2/unpack.hpp:171:31: 附注:msgpack::v1::object_handle msgpack::v2::unpack(const char*, std::size_t, std::size_t&, msgpack::v1::unpack_reference_func, void*, const msgpack::v1::unpack_limit&)
 inline msgpack::object_handle unpack(
                               ^
/usr/local/include/msgpack/v2/unpack.hpp:171:31: 附注:  no known conversion for argument 1 from ‘msgpack::v1::unpacked* {aka msgpack::v1::object_handle*}’ to ‘const char*’
/usr/local/include/msgpack/v2/unpack.hpp:180:31: 附注:msgpack::v1::object_handle msgpack::v2::unpack(const char*, std::size_t, bool&, msgpack::v1::unpack_reference_func, void*, const msgpack::v1::unpack_limit&)
 inline msgpack::object_handle unpack(
                               ^
/usr/local/include/msgpack/v2/unpack.hpp:180:31: 附注:  no known conversion for argument 1 from ‘msgpack::v1::unpacked* {aka msgpack::v1::object_handle*}’ to ‘const char*’
/usr/local/include/msgpack/v2/unpack.hpp:189:31: 附注:msgpack::v1::object_handle msgpack::v2::unpack(const char*, std::size_t, msgpack::v1::unpack_reference_func, void*, const msgpack::v1::unpack_limit&)
 inline msgpack::object_handle unpack(
                               ^
/usr/local/include/msgpack/v2/unpack.hpp:189:31: 附注:  no known conversion for argument 1 from ‘msgpack::v1::unpacked* {aka msgpack::v1::object_handle*}’ to ‘const char*’

Instead, users should install MsgpackC v1.4.2 following this.

from paracel.

zmxdream avatar zmxdream commented on June 29, 2024

i meet the same problem ,i install MsgpackC v1.4.2, but the problem still occurs

from paracel.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.