This got rid of the error, but I still have a problem launching Matlab. Each time I launch it (by typing \"matlab\" in terminal), the Mathworks software activation window pops up. I provide the path to the licence file, it appears to activate successfully (no errors), but then Matlab doesn't launch. If I try to run it again, the same thing happens.
Way too old thread but viewed 4523 times and active 16 days ago so still relevant I guess. Here is how you solve it. In my case the folder \"/.matlab/R2015a_licenses/\" did not exist. though \"/.matlab\" did. So I created R2015a_licenses. Now the problem is this folder was accessible only to root. So the activation application could not write the required file. So change the permission of this folder using \"sudo chmod 777 R2015a_licenses\". Now run matlab normally(no sudo). It should take you to the activation client. otherwise run the activation client manually(no sudo), it is called \"activate_matlab.sh\" in the bin folder. follow the steps and let it detect the user-name and do not change it. when it exits without error you are done with the licence part. Now there could be another problem that your matlab freezes just after the opening window and doesn't go any further. Take a look at this. \"Go to the \".matlab/\" directory in the users home directory. Rename the directory named after the version of MATLAB you are using to have _old at the end. If there is a folder with \"_licenses\" in the name, DO NOT rename that folder\" kind of worked. By kind of I mean matlab complained that it cant write preferences in \"/.matlab\". So I changed the permission for that folder by \"chmod\" and then it worked.
One thing I've encountered is that in Linux (and likely other ELF implementations, though I've not tested beyond Linux) is that the symbol table is global. Given the following setup:> A -> C.1> B -> C.2> D -> C.1Where A and B link to 2 different libraries C.1 and C.2 which share symbols (newer version of some dependency, unfortunate collisions, whatever).If A is loaded first followed by B, what happens at runtime is:> A -> C.1> B -> C.1for the symbols common between C.1 and C.2. What I wish that would happen is that the linker would see that A linked C.1 and therefore *only* look for symbols in C.1.One example we keep hitting is that some external, third party program uses a dependency that we use (e.g., Matlab and Boost). Matlab uses some old version of Boost (1.3x) and our project requires 1.4x. Since we load the Matlab with dlopen, Matlab gets very unhappy calling the newer Boost symbols with the same name. What we have to do is \"#define boost boost_custom_version\" in boost/config/user.hpp so that the symbols don't collide for our project. The better solution (that would work today) would be if Matlab used \"#define boost boost_matlab_VERSION\" (since I doubt MathWorks is going to let anyone else compile Matlab anytime soon) instead of forcing everyone else to get out of its way.The ideal solution (which I believe Windows uses, but I'm not 100% sure) is the \"only look up in linked libraries\". RTLD_LOCAL isn't a solution because then D fails to load because it can't find C.1 symbols because A loaded it transitively as RTLD_LAZY and locked all the other libraries from it.I guess this could interfere with LD_PRELOAD from working as intended, but maybe it could be solved by injecting it into the \"allowed libraries for symbol resolution table\" for all libraries in the process.> but I believe C++ neatly gets round that by changing the ABI based on the compiler used ... :-)The inline namespace trick introduced in C++11 would help tremendously, but that's years down the line for common usage. If multiple symbol versioning could be done with C++ class methods without touching headers, it could be done today (maybe it is, but I've been unable to find docs).Users shouldn't care that there are 3 versions of foo::bar floating around; they should just get the latest version of the method, but the old versions should still be in the source file. Versioning the entire class results in quite a bit of code duplication. libstdc++ licensing Posted May 8, 2013 8:46 UTC (Wed) by khim (subscriber, #9252) [Link] 153554b96e