Date: Wed, 17 Apr 1996 11:28:50 -0700 (PDT) From: John Polstra <jdp@polstra.com> To: ejs@bfd.com Cc: freebsd-hackers@freebsd.org Subject: Re: How to make g++ shared libraries? Message-ID: <199604171828.LAA17682@austin.polstra.com> In-Reply-To: <Pine.BSF.3.91.960417081909.10222A-100000@harlie.bfd.com>
index | next in thread | previous in thread | raw e-mail
In article <Pine.BSF.3.91.960417081909.10222A-100000@harlie.bfd.com>
ejs@bfd.com writes:
>
> I'm trying to create a shared version of the Cvo (Cray Visual Objects)
> c++ library, but it isn't working. I followed the same steps that I do
> to make regular c shared libraries (gcc with -c and -fpic, then
> ld -Bshareable to create the libCvo.so.1.0. This creates a library that
> I can link against, but when I try to execute the resulting program, I
> get:
>
> Cvo-24: Global constructors were probably not called.
You must include "/usr/lib/c++rt0.o" near the front of your "ld" command
line when creating C++ shared libraries. E.g.,
ld -Bshareable -o libfoo.so.1.0 /usr/lib/c++rt0.o *.o
If you are using the standard FreeBSD makefiles (<bsd.lib.mk>), you can
accomplish this by defining the CPLUSPLUSLIB make variable.
--
John Polstra jdp@polstra.com
John D. Polstra & Co., Inc. Seattle, Washington USA
"Self-knowledge is always bad news." -- John Barth
help
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?199604171828.LAA17682>
