Article View: pl.comp.objects
Article #5029Re: Inicjalizacja obiektów globalnych w bibliotekach dynamicznych
From: Kalafiorczyk
Date: Fri, 05 Mar 1999 06:29
Date: Fri, 05 Mar 1999 06:29
41 lines
2253 bytes
2253 bytes
Piotr Piatkowski wrote:
> Niestety, już na samym początku prac pojawił się problem - program
> linkowany statycznie działa poprawnie, linkowany z biblioteką dynamiczną
> core'uje się. Szczęśliwie dość szybko udało mi się dojść przyczyny.
Czołem Piotrze!
Ja nic nie wiem na temat egcs, ale twój problem jest standartowym
problemem programistów C++ we wszystkich Unixach. Nie będę Ci
tłumaczył łopatologicznie, podam tylko ogólny zarys.
Najpierw kompilacja C:
cc a.c
jest równoważne (w przybliżeniu):
cc -c a.c -o a.o
ld a.o -lc -o a.out
Teraz dla porównania w C++:
CC a.C
jest równoważne (w przybliżeniu):
CC -c a.C -o a.o
c++prelink a.o
ld a.o -lC -lc -o a.out
c++patch a.out
c++prelink zajmuje się generowniem instancji templat. c++patch zajmuje się
generowaniem wywołań konstruktorów dla obiektów statycznych. Oba trzeba
wywołać zarówno przy budowaniu shared objects jak i executables.
Musisz albo znależć c++patch w Twoim systemie, albo podejżeć jaką
opcję trzeba podać dla ld. Na moim Unix-ie to jest zautomatyzowane
przy użyciu CC w następujący sposób:
CC -shared a.C -o a.so
albo:
CC -c a.C -o a.o
CC -shared a.o -o a.so
w zależności od tego, jak jest wygodniej użytkownikowi kompilatora.
Życzę powodzenia.
Sylwester
Technical Details
Message-ID:
<36DF79C9.E61C17E2@netcom.com>Path:
mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!pingwin.icm.edu.pl!agh.edu.pl!news.wnaft.agh.edu.pl!news.memax.krakow.pl!paa.gov.pl!news.swierk.pl!news.icm.edu.pl!fu-berlin.de!isdnet!cyclone.news.idirect.com!island.idirect.com!newsfeed.enteract.com!ix.netcom.com!newsReferences:
<7blnec$qo8$1@druid.ceti.com.pl>Show Full Headers
Complete Article Headers
Path: mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!pingwin.icm.edu.pl!agh.edu.pl!news.wnaft.agh.edu.pl!news.memax.krakow.pl!paa.gov.pl!news.swierk.pl!news.icm.edu.pl!fu-berlin.de!isdnet!cyclone.news.idirect.com!island.idirect.com!newsfeed.enteract.com!ix.netcom.com!news From: Kalafiorczyk <simg@netcom.com> Newsgroups: pl.comp.objects Subject: Re: Inicjalizacja obiektów globalnych w bibliotekach dynamicznych Date: Thu, 04 Mar 1999 22:29:29 -0800 Organization: nie ma, za malo kawy Lines: 42 Message-ID: <36DF79C9.E61C17E2@netcom.com> References: <7blnec$qo8$1@druid.ceti.com.pl> NNTP-Posting-Host: netcom11.netcom.com Mime-Version: 1.0 X-NETCOM-Date: Thu Mar 04 10:36:16 PM PST 1999 NNTP-Posting-User: simg X-Mailer: Mozilla 4.06 [en] (Win95; I) To: Piotr Piatkowski <kompas@ceti.com.pl> Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit