Hi,
Thank you for the suggestions. I tried -R and I get
g++: error: unrecognized command line option ‘-R’
I also see that -R is not a g++ flag. What I did was copy all of the -L's in the mkoctfile and added a similar -R.
Basically, in my makefile I did this:
RLIBDIR = $(subst -L,-R,$(LIBDIR))
And then added both $(RLIBDIR) and $(LIBDIR) to the mkoctfile command line.
Unfortunately, it is hard to release the SW as is to show the issue. I will figure out how to create a simple example to show the issue.
One thing to note is the libraries are in the -L's and are someplace in my build tree under /home/<user name>.
While I figure out an example I can at least quickly show the picture of what is going on:
- /home/rjjt/libs/libA.so <--- c++11 stuff that is build into a .so with class CoolStuffClass and member function doSomething
- /home/rjjt/octs/myOctStuff.oct this routine creates a class CoolStuffClass and calls the doSomething member function
- mkoctfile -L/home/rjjt/libs -lA myOctStuff.cc -output /home/rjjt/octs/myOctStuff
Creates /home/rjjt/octs/myOctStuff
LD_LIBRARY_PATH=/home/rjjt/libs octave&
>>>> myOctStuffFunctionThatCallsCoolStuffClass
Then it says in the normal cryptic name mangled way that it can't find CoolStuffClass::doSomething
Using c++filt you can get to CoolStuffClass::doSomething which is a program that unmangles the mangled name in the ELF/oct file.
ldd /home/rjjt/octs/myOctStuff.oct | grep libA.so
Returns that it is part there and with the correct path.
Richard