You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
Linker error while crosscompiling to linux/mips #1148
Hello!
After several compilations of messagepack to linux/arm, linux/x64 and some others I turned to linux/mips platform with toolchain-mipsel_24kc_gcc-12.3.0_musl.
In my case Messagepack is included in shared library that's being used by application.
So while compiling application I'm getting error:
mipsel-openwrt-linux-musl/bin/ld: libnodesd.so: undefined reference to msgpack::v1::adaptor::object<decltype(nullptr), void>::operator()(msgpack::v2::object&, decltype(nullptr) const&) const
Digging with nm shows that mentioned symbol is really undefined in library:
Perhaps writing your own adaptor for decltype(nullptr)std::nullptr_t? solve the issue.
NOTE: msgpack-c (C++) is a header-only library. The all translation unit should have the same version of msgpack-c, basically. But if msgpack-c code is in the user's library, you can only use the type that is instantiated in the library, I guess.
Sorry for may be newbie quiestions, but I don't understand the reason of that error while same app/user library successfully compiles with other compilers.
I'm using MessagePack 3.1.0, 3.3.0 and today tried 6.1.0 with identical behavior.
Activity
redboltz commentedon Nov 19, 2024
I am no sure but some of implementation defined type would cause the issue, I guess.
You can write your own adaptor using the following way:
https://github.com/msgpack/msgpack-c/wiki/v2_0_cpp_adaptor#non-intrusive-approach
Perhaps writing your own adaptor for
decltype(nullptr)std::nullptr_t? solve the issue.NOTE: msgpack-c (C++) is a header-only library. The all translation unit should have the same version of msgpack-c, basically. But if msgpack-c code is in the user's library, you can only use the type that is instantiated in the library, I guess.
taushkanov commentedon Nov 19, 2024
Thank you for quick answer.
Sorry for may be newbie quiestions, but I don't understand the reason of that error while same app/user library successfully compiles with other compilers.
I'm using MessagePack 3.1.0, 3.3.0 and today tried 6.1.0 with identical behavior.