-
Notifications
You must be signed in to change notification settings - Fork 34
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
undefined symbol error when loading plugin (Nuke 11.2v3) #15
Comments
Hello! Glad you're enjoying it. I think you're correct that it's linked against the wrong library. Running 'ldd' on the MLClient.so might give you a hint at the library it linked against during compilation. You could also try running 'make' in verbose mode (i.e. 'make VERBOSE=1') to print out the linker command to see what paths are being included. Hope that helps! |
Hmm, after further inspection it seems to be loading the right library, but the library indeed does not seem to have the symbol it's looking for. If I do nm -D /usr/local/Nuke11.2v3/libDDImage.so I get output that looks like: 00000000001f88b0 T _ZN2DD5Image2Op14set_unlicensedEv So similar symbols are there, but nm -D /usr/local/Nuke11.2v3/libDDImage.so | grep _ZNK2DD5Image2Op15input_longlabelB5cxx11Ei returns nothing. Can you confirm the plugin should work with Nuke 11.2v3? |
Ok, I figured out the issue. I guess Nuke 11.2v3 was compiled with the old, non-cxx11 ABI. To fix this error, I had to recompile both protobuf and the client with '-D_GLIBCXX_USE_CXX11_ABI=0'. |
Ah interesting, thanks for persevering, that makes more sense now!
So it seems you shouldn't be able to build plugins without that macro,
which is likely because you aren't building on CentOS or RHEL 6/7? The
compilers on these platforms by default define this macro, so we don't do
it explicitly. This is a `libstdc++` thing, which the vfx platform still
keeps for backward compatibility. A new ABI was introduced in gcc 5.x but
the VFX platform explicitly wants us to keep the old ABI, which is the
default on the supported linux platforms. See
https://vfxplatform.com/#footnote-gcc6 for more info.
…On Wed, Jul 17, 2019 at 9:23 PM fcole ***@***.***> wrote:
Ok, I figured out the issue. I guess Nuke 11.2v3 was compiled with the
old, non-cxx11 ABI. To fix this error, I had to recompile both protobuf and
the client with '-D_GLIBCXX_USE_CXX11_ABI=0'.
—
You are receiving this because you commented.
Reply to this email directly, view it on GitHub
<#15?email_source=notifications&email_token=AAIH2BYPNN26RRG74ZIN6O3P755UFA5CNFSM4IDYBRC2YY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZGOD2GPIIQ#issuecomment-512554018>,
or mute the thread
<https://github.com/notifications/unsubscribe-auth/AAIH2B4F633XZYLC7SNIO6TP755UFANCNFSM4IDYBRCQ>
.
|
Hi, Thank you,
|
Hi @UweMajer , I haven't tested it, but you can add the definition in the 'nuke-ML-server/CMakeLists.txt': add_definitions(-D_GLIBCXX_USE_CXX11_ABI=0) (from: https://stackoverflow.com/questions/50867365/what-is-difference-between-add-definitions-and-set-in-cmake-file, more info here: https://blog.conan.io/2016/03/22/From-CMake-syntax-to-libstdc++-ABI-incompatibiliy-migrations-are-always-hard.html) |
for me it did not work to add the codeline provided by @ringdk , but i managed to get it running anyway on Ubuntu 18.04.3 LTS. best regards, |
So I did a recompile ala @fcole under 12.2 and continue to see the same problem. One thing I didn't check is if the definitions 'survived' the Next I suppose would be to build a docker / roll back my gcc ala @sprnglf ... ugh. |
First of all, thanks for this plugin! I managed to build and install it (I think), but when I try to drop the node into Nuke I get the following error:
/usr/local/home/fcole/.nuke/MLClient.so: undefined symbol: _ZNK2DD5Image2Op15input_longlabelB5cxx11Ei
I checked the build paths and it does seem like it is built against the Nuke version I am running (11.2v3). I've had a couple other Nuke installs on this machine, though, so wondering if this error could be caused by finding a stale library somewhere.
The text was updated successfully, but these errors were encountered: