Comments (6)
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.
library path in /usr/local/lib, include path in /usr/local/include, i can compile and run it but output nothing.
from paracel.
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@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.
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.
i meet the same problem ,i install MsgpackC v1.4.2, but the problem still occurs
from paracel.
Related Issues (20)
- Create a new release: 0.3.0. HOT 1
- Import document of v0.3.0. HOT 1
- Fix unittest failure under osx HOT 1
- Fix the Resource leak bug for Comm HOT 1
- Fix all Uninitialized Scalar Variable defects HOT 1
- Fix all Uncaught Exception defects
- Fix all Uninitialized Scalar Field defects HOT 1
- Fix the Argument Cannot be Negative defect HOT 1
- Fix all Big Parameter Passed by Value defects HOT 1
- Fix defects from coverity scan.
- Refactor python scripts according to Pylint HOT 1
- Fix compile issue for balltree folder
- Ensure using Pymesos < 0.2.0 HOT 1
- Incorrect hostname using `socket.gethostname()` under macOS Sierra. HOT 1
- how does the paracel solve the 'last-reducer' problem of iterative tasks? HOT 1
- i want to run the matrix_factorization example ,but return errors HOT 5
- Throw user-friendly error message when catching exceptions.
- Sync document with latest version
- i meet the same problem ,i install MsgpackC v1.4.2, but the problem still occurs HOT 1
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
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.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from paracel.