This is the mail archive of the
gcc-bugs@gcc.gnu.org
mailing list for the GCC project.
Re: Problem with Global Objects/Classes and Libraries
- To: Alexandre Oliva <aoliva at redhat dot com>
- Subject: Re: Problem with Global Objects/Classes and Libraries
- From: "Marshall H Hamilton" <Marshall dot Hamilton at fisc dot com>
- Date: Fri, 23 Mar 2001 12:59:00 -0500
- Cc: gcc-bugs at gcc dot gnu dot org
The library is created in the following way:
Each of the (cpp files) that goes into the library is compiled with the
following command:
g++ -g -c -D_SOLARIS -D_POSIX_THREAD_SEMANTICS -I/usr/marshall/include
-I/usr/marshall/include/solaris -o
/usr/marshall/ds/(cpp file).o /usr/marshall/ds/(cpp file)
The objects are bundled into the library file using:
ld -G -o /usr/marshall/result/libdsbase.so /usr/marshall/ds/(object filename
from) .....{OTHER OBJECTS}.....
-lpthread.
To create the executable, the following is done:
To create the object behind the executable, the command is:
g++ -g -c -D_SOLARIS -I/usr/marshall/ds/include
-I/usr/marshall/include/solaris
-o/usr/marshall/exe/testapi.o /usr/marshall/exe/testapi.cpp
Then:
g++ -D_SOLARIS -L/usr/lib -L/usr/local/ldap/lib -o /usr/marshall/result/(exe
filename)
/usr/marshall/exe/testapi.o /usr/marshall/result/libdsbase.so -lgen
All of this is done with 2 makefiles (one for the library, and one for the
executable).
I'm using Sun Solaris (2.6).
On Mar 22, 2001, "Marshall H Hamilton" <Marshall.Hamilton@fisc.com> wrote:
> Here's the situation: I'm building a library on Unix using g++, and
> in one of the *.cpp files that are used to build the library I
> declare a global object/class.
How do you create this library? How do you link the executable with
the library? Which Unix is that?
--
Alexandre Oliva Enjoy Guarana', see http://www.ic.unicamp.br/~oliva/
Red Hat GCC Developer aoliva@{cygnus.com, redhat.com}
CS PhD student at IC-Unicamp oliva@{lsd.ic.unicamp.br, gnu.org}
Free Software Evangelist *Please* write to mailing lists, not to me