Failure loading library libASImage.so

Hi all,

My root was working perfectly two weeks ago, but now when I try to run any script it fails with the error message:

root [0] TBrowser a
cling::DynamicLibraryManager::loadLibrary(): /usr/lib/libAfterImage.so.0: undefined symbol: gdk_pixbuf_get_n_channels
Error in TInterpreter::TCling::AutoLoad: failure loading library libASImage.so for TASImage
cling::DynamicLibraryManager::loadLibrary(): /usr/lib/libAfterImage.so.0: undefined symbol: gdk_pixbuf_get_n_channels
Error in TGVSplitter::TGVSplitter: splitterv.xpm not found

And many more similar errors.

Can someone tell me what can possibly cause this issue?
Thanks in advance.

Hi @KiriPapa,

Can you please give us information about OS and compiler and version of ROOT you are using and how did you build or install ROOT?
For me looks like you have outdated version libAfterImage.so.0 with gdk_pixbuf_get_n_channels symbol there that you can’t resolve…

for me if to do:
nm lib/libASImage.so | grep gdk_pixbuf_get_n_channels
it give me not such symbol in libAfterImage.so

Thanks for the answer.

I’m using Manjaro linux 18.0 with ROOT version 6.14/04 (built for linuxx8664gcc if that matters).
I built ROOT from the AUR repository. And a week ago it worked perfectly, the only thing that changed since, is that I updated all my packages.

I have no libASImage.so in my lib directory, only one in the usr/lib/root/ directory if that matters…

I see that @kgizdov is maintainer of https://aur.archlinux.org/packages/root/ package.
@kgizdov can you take a look please and comment here? thank you!

Not sure how it works on Manjaro, but on Arch Linux libafterimage is part of the official repos and the AUR root package looks for that version. Seems like something went wrong when you recompiled and it wasn’t picked up correctly. Please check that libafterimage is installed as a shared lib under /usr/lib and it’s headers are available under /usr/include/libAfterImage. You can do that with # pacman -Fy to update the file database, $ pacman -Fl libafterimage to list the files and then $ pacman -Qk libafterimage to check all files are there. Also, make sure your CMake flags are correctly setup to pick up the share lib: -Dbuiltin_afterimage=OFF -Dasimage=ON -Dfail-on-missing=ON. If you are installing libafterimage from source, you will probably have a bad time and the headers will not be installed. There is a bug upstream in the Makefile and you need this patch to make it work:

diff --git a/Makefile.in b/Makefile.in
index 1faabd7..98203d6 100644
--- a/Makefile.in
+++ b/Makefile.in
@@ -202,17 +202,17 @@ install.inc:
 		    $(RM) $(AFTER_INC_DIR)/*; \
 		 else \
 		    if [ -d $(INCLUDEDIR) ]; then \
-		       echo "$(MKDIR) $(AFTER_INC_DIR)"; \
-		       if $(MKDIR) $(AFTER_INC_DIR); then \
+		       echo "$(MKDIR) -p $(AFTER_INC_DIR)"; \
+		       if $(MKDIR) -p $(AFTER_INC_DIR); then \
 		          echo " ">/dev/null; \
 		       else \
 		    	  echo "failed to create include directory: $(AFTER_INC_DIR)"; \
 		       fi; \
 		    else \
-		       echo "$(MKDIR) $(INCLUDEDIR)"; \
-		       if $(MKDIR) $(INCLUDEDIR); then \
-		          echo "$(MKDIR) $(AFTER_INC_DIR)"; \
-		          if $(MKDIR) $(AFTER_INC_DIR) >/dev/null; then \
+		       echo "$(MKDIR) -p $(INCLUDEDIR)"; \
+		       if $(MKDIR) -p $(INCLUDEDIR); then \
+		          echo "$(MKDIR) -p $(AFTER_INC_DIR)"; \
+		          if $(MKDIR) -p $(AFTER_INC_DIR) >/dev/null; then \
 		             echo " ">/dev/null; \
 		          else \
 		             echo "failed to create include directory: $(AFTER_INC_DIR)"; \

Thanks for the answer @kgizdov ,
my libAfterImage has all the header files, and in my usr/lib/ folder I find

$ ls libAfterImage*
libAfterImage.so libAfterImage.so.0 libAfterImage.so.0.99

But my root worked perfectly for weeks after I built it from AUR, and went wrong only last week, so I don’t see how could a CMake flag be an issue in this case. (also not sure how to set the flags as you said)

@KiriPapa not sure what the problem is in this case, but in a couple of days root will be part of community, so you should no longer have any more issues.

This topic was automatically closed 14 days after the last reply. New replies are no longer allowed.