Gcc static linking problems

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



This is multi-part question that I have been struggling with for the
past few days. I know similar issues have been addressed recently, but
they haven't worked for me. 

My company had developed an application on a previous version of Solaris
(probably 2.7) and built it statically. Well, a few years have passed
and we are looking to make some changes on it. This time, however, it is
on Solaris 9 and currently using gcc 3.2.1.

If I use the exact source code and makefile everything works great
except it builds the application to use dynamic linking. This becomes a
problem when our customer's systems don't have the libraries this
application needs (libstdc++ specifically). 

So, the obvious solution is to build it statically, but I can't get it
to build. There are error messages about unresolved externals that
should be resolved in the libsocket library.


Here are the questions:
1. Is there any reason why we shouldn't be trying to build it
statically? How could we make sure our customers have the necessary
libraries if we do build it dynamically? 

2. I have seen a lot of posts about adding -static to the build line and
even alternating static and dynamic to get it to build correctly. I have
tried many combination of this with no success. What am I doing wrong on
this line?
	g++ -lnsl -lsocket program.o -o program -static -lstdc++

3. Is this problem caused by gcc or by Solaris or by the user?

Any thoughts would be appreciated.

Thanks,

Tim



[Index of Archives]     [Linux C Programming]     [Linux Kernel]     [eCos]     [Fedora Development]     [Fedora Announce]     [Autoconf]     [The DWARVES Debugging Tools]     [Yosemite Campsites]     [Yosemite News]     [Linux GCC]

  Powered by Linux