First of all, apologies for cross-posting but this problem cuts across
a few specialties. Let me explain the background of the problem.

The 3d application Maya (from AutoDesk) has a scripting interface that
has several thousand commands one of which is called system. The
command system allows an external binary/program to be launched via
Maya. Unfortunately, this command refuses to run a simulator (written
in C++ by one of our students). The simulator program works well on
its own as a standalone app but cannot be launched by Maya via the
system command.

In order to figure out why, I attached strace to Maya and tried
running simulator again, and got the following error message:

clone(child_stack=0, flags=CLONE_CHILD_CLEARTID|CLONE_CHILD_SETTID|
SIGCHLD, child_tidptr=0xaf70e778) = 28741
/home/timmy/project/bin/simulator: /opt/autodesk/maya/lib/libstdc++.so.
6: version `GLIBCXX_3.4.9' not found (required by /home/timmy/project/
bin/simulator)

Clearly, Maya and simulator are linked to different versions of the C+
+ shared object library.

(Warning OS talk ahead)
Here's what I think caused the error:
1. as Maya is the parent process it loaded its preferred version of
libstdc++.
2. subsequently, the OS, while execing simulator, did not (is not
programmed to) check if version of the libstdc++ library inherited
from Maya is the same as the version of the libstdc++ library required
by simulator, and therefore assumed that the requisite library was
loaded.

Theory aside, how can I solve this problem (i.e. launch the simulator
from Maya) bearing in mind that the user does not have admin
privileges to the machine.

One of the options I've considered is compiling the simulator with the
same version of the g++ as Maya. I'd like to know if there are other
options.

Thanks,

- Olumide
_______________________________________________
help-gplusplus mailing list
help-gplusplus@gnu.org
http://lists.gnu.org/mailman/listinfo/help-gplusplus

Reply via email to