I tried to ran a gauss program that previously worked perfectly well in the earlier version of Gauss. But in the v.12 of Gauss, it stopped working and showed this error sign:
"/media/Data/Research/shak/SIMU/qrsimu_20121124.gau(82) : error G0432 : '/media/Data/Research/shak/SIMU/boladth.so' : Error opening dynamic library
Program execute failed"
Would you please advice?
The most common cause of this is having a 32-bit version of GAUSS and a 64-bit version of the dynamic library (.dll, .so, or .dylib) or the other way around. To find out the bit size of boladth.so on Linux, you can use the file command. From a Linux command prompt, change to the directory in which the shared library is located and enter:
This will return some information about the file including the bit size of the shared library. To find the bit-size of GAUSS 12 on your machine, from the GAUSS command-line enter:
This will return either a 32 or a 64 which indicates the bit size of GAUSS.
If the bit sizes do not match, then that is the cause of your problem. If they do match, post the output you received from the commands above in this thread on the forum and we can look further.
Thanks apteh80! Following your instruction I find the boladth.so is a 32 bit code, while the Gauss program is a 64 bid in my 64 machine. I'm happy that at least I find the source of the problem. Thanks again for your advice.
Would you please also tell me the way to change the boladth.so to 64 bit? I have boladth.dll.
I tried to read the User Guide on this but it's difficult to understand. Please advice.
To create a 64-bit shared library (.dll, .so, or .dylib), you need to recompile the library. Do you have the source code for the library? This would be one or more files that ends with .c, .cpp, .cxx, .h, .f, .f90?
If you have the source code it is no big deal to recompile on Linux. I would be happy to advise you on that.
I don't have the source code. Is it possible to recover the source code using .dll or .so?
Unfortunately, it is not possible to recover the source code from a shared library. It is also not possible to make a 32-bit shared library into a 64-bit shared library. This is not a limitation of GAUSS, but a general principle.
If locating the source code is not possible, your best bet is probably going to be installing a 32-bit version of GAUSS. However, if you have any information about where this .so file came from, you might be able to recover the source code from the original author.
It might also be helpful to look at what the shared library is doing. Is it possibly performing a function that was not in older versions of GAUSS, but is in the current version?