G0432 : Error opening dynamic library

I am getting an error G0432 : Error opening dynamic library.

I have 64 bit Linux, running 64 Gauss, and the library has been compiled to 64 bit on the same machine I'm having the problem with. As it was complied on the same machine and it runs without error in the command line I don't see it can be a dependency issue. The only two suggestions I have seen are compiled to the wrong bit specification or missing dependencies. Do you have any other suggestions? This error message really isn't helpful.

Thanks,

Jamie.

4 Answers



0



When you say that it runs without error in the command line, does that mean that 'tgauss' can load your shared library successfully or that you have made another compiled wrapper that can use your shared library?

Sometimes dependencies can be a problem in a case like you describe because the environment variables in your terminal may be different than the environment that GUI GAUSS sees. Here is what I would recommend:

1. Try to load the shared library in a 'tgauss' session if you have not already. If this is successful then we can be pretty sure it is a difference in the environment variables available to GUI GAUSS vs. tgauss on the command line and we can resolve that. 'tgauss' will also print a more specific failure message in at least some cases.

2. If the error message from the initial 'tgauss' run is not specific enough (maybe it says 'suitable version not found'), then set then you can set the LD_DEBUG environment variable. This will print out a trace of each shared library that 'tgauss' tries to open and where it searched. This would look something like this:

cd mygausshome
export LD_DEBUG=libs
./tgauss

and then from 'tgauss' prompt

(gauss) dlibrary mysharedlibrary;

As I am sure you realize, make sure the substitute the path to your GAUSS instead of 'mygausshome' and also the actual name of your shared library instead of 'mysharedlibrary'.

This should point out the problem. Let us know what you find and if you need any help resolving the problem based on the information from these commands.

aptech

1,773


0



By command line I meant the linux command line. I ran a tgauss session an got the slightly more detailed addition to the message "cannot dynamically load executable". I still don't know what this means though. I also ran with LD_DEBUG=libs  set and although I got a lot of calls appearing on start up and shut down nothing related to my dlibary call.

Thanks,

J



0



OK I hadn't complied it as a shared object (extension -fPIC in gcc).  I'm getting a different error but hopefully should be able to work my way through them now that I can see the error message in the tgauss session. Thanks,



0



Yes, you need the -fPIC and -shared flags.

aptech

1,773

Your Answer

4 Answers

0

When you say that it runs without error in the command line, does that mean that 'tgauss' can load your shared library successfully or that you have made another compiled wrapper that can use your shared library?

Sometimes dependencies can be a problem in a case like you describe because the environment variables in your terminal may be different than the environment that GUI GAUSS sees. Here is what I would recommend:

1. Try to load the shared library in a 'tgauss' session if you have not already. If this is successful then we can be pretty sure it is a difference in the environment variables available to GUI GAUSS vs. tgauss on the command line and we can resolve that. 'tgauss' will also print a more specific failure message in at least some cases.

2. If the error message from the initial 'tgauss' run is not specific enough (maybe it says 'suitable version not found'), then set then you can set the LD_DEBUG environment variable. This will print out a trace of each shared library that 'tgauss' tries to open and where it searched. This would look something like this:

cd mygausshome
export LD_DEBUG=libs
./tgauss

and then from 'tgauss' prompt

(gauss) dlibrary mysharedlibrary;

As I am sure you realize, make sure the substitute the path to your GAUSS instead of 'mygausshome' and also the actual name of your shared library instead of 'mysharedlibrary'.

This should point out the problem. Let us know what you find and if you need any help resolving the problem based on the information from these commands.

0

By command line I meant the linux command line. I ran a tgauss session an got the slightly more detailed addition to the message "cannot dynamically load executable". I still don't know what this means though. I also ran with LD_DEBUG=libs  set and although I got a lot of calls appearing on start up and shut down nothing related to my dlibary call.

Thanks,

J

0

OK I hadn't complied it as a shared object (extension -fPIC in gcc).  I'm getting a different error but hopefully should be able to work my way through them now that I can see the error message in the tgauss session. Thanks,

0

Yes, you need the -fPIC and -shared flags.


You must login to post answers.

Have a Specific Question?

Get a real answer from a real person

Need Support?

Get help from our friendly experts.