I am working on an old shell script that calls octave at some point, with a file.m as argument.
The part of the code that causes the error just runs: octave -q my_file.m (and other arguments)
The error is: “select.oct: failed to load: liboctinterp.so.3: cannot open shared object file: No such file or directory”
The code uses to work with octave 4.4.1 on a server, but I can’t make it run on my PC, in local.
Do you think that if I install octave-4.4.1 it could fix the problem? Or do you think octaves’ version is unlinked to the issue? (As for the moment I have also tried compiling octave-4.4.1 from source but I am encountering a problem during compilation too, so I just want to be sure it could work.)
Or maybe this shared library has nothing to do with octave and I can get it elsewhere?
When I run:
select.oct happens to be included in the parallel package. Are you using this package? If so then maybe all you have to do is update your packages, e.g. pkg update parallel.
Hi,
I am running into a similar issue with the reported error above when octave is trying to read a .mex file from palm. Can someone mention where you found the select.oct file?
where liboctinterp.so.7 should be the version currently installed on your system, and liboctinterp.so.3 is the version that the binary oct/mex file was linked against.
It’s probably not a good idea to create that symlink. There is a reason why those libraries are postfixed with the API version: There is no guarantee that the APIs are compatible across versions…
I agree. it is nothing more than a hack, however, in our case, it simply worked (and solved user’s problem without needing the pain to teach them to set up the compilation system).
I suspect that the reason it worked for us was because the mex APIs used in our mex file are the basic ones and among the stable subset of all APIs. I also suspect that the majority of simple mex files found online also satisfy this condition.