This is the mail archive of the gcc-help@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: LD_LIBRARY_PATH needed for gcc-3.4.5 executable


Digvijoy Chatterjee writes:
 > On 5/26/06, David M. O'Brien <dmo61@lucent.com> wrote:
 > > Can anyone suggest a fix for this??
 > >
 > >
 > > I am compiling a program with gcc-3.4.5 g++.
 > > When I go to execute that program I get the following:
 > >
 > > ld.so.1: ./prog1: fatal: libstdc++.so.6: open failed: No such file or directory
 > >
 > > I can solve the issue by setting my LD_LIBRARY_PATH to the directory where
 > > libstdc++.so.6 is located.
 > >
 > > This program used to run with gcc-2.95.3 without resetting LD_LIBRARY_PATH.
 > >
 > > Question I have,
 > >
 > > Is there a way to compile my program so that there is no need to have the
 > > libstdc++.so.6 at runtime? Can I create a prog1, that contains all symbols and
 > > no need for this library when executing?
 > >
 > > If so, what are the command options for doing that? I have read over the g++ and
 > > ld documentation but can not seem to find the correct combination.

 > hi Dave ,
 > You can link it statically if you are ready to have a huge executable,
 > if you do  that then Dynamic Linking would not be needed at all ,all
 > the linking would be built inside the executable
 > I think -static is the switch to do that

Static linkage is problematic on GNU/Linux and similar systems.  If
you must link statically with libstdc++, it's probably better to link
statically only with that library.

You can do that with something like:

  gcc test.cc -Wl,-Bstatic -lstdc++ -Wl,-Bdynamic

but in general we don't recommend static linkage at all.

Andrew.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]