New Function Package

Hi,
I am trying to run external root functions on root, which has

ls /opt/root/lib/root/
   XXX.so
   XXX.rootmap
   ...
ls /opt/root/include/root/
   XXX1.hh
   XXX2.hh
   XXX3.hh

just like every other root functions.
The paths are set
DYLD_LIBRARY_PATH=/opt/root/lib/root/
incdir=/opt/root/include/root/

So I blindly tried

ln -s XXX1.hh XXX.so

which obviously won’t work for .hh files.
And I also tried

root[] gSystem->AddIncludePath("/opt/root/include/root");

which seem to be the methods tried by someone who posted the similar question before, but the problem still remains.

root[] gSystem->Load("XXX");

dlopen error: dlopen(/opt/root/lib/root/XXX.so, 9): no suitable image found.  Did find:
/opt/root/lib/root/XXX.so: unknown file type, first eight bytes: 0x7F 0x45 0x4C 0x46 0x01 0x01 0x01 0x00
Load Error: Failed to load Dynamic link library /opt/root/lib/root/XXX.so
(int)(-1)

or

root[] gSystem->Load("XXX");

(int)(1)

Thanks you very much.