Hinweis: Das Forum wird geschlossen! Neue Registrierungen sind nicht mehr möglich!

 Zurück zu Pro-Linux   Foren-Übersicht   FAQ     Suchen    Mitgliederliste
Library erzeugen - Symbolprobleme

 
Neuen Beitrag schreiben   Auf Beitrag antworten    Pro-Linux Foren-Übersicht -> Programmieren - C
Vorheriges Thema anzeigen :: Nächstes Thema anzeigen  
Autor Nachricht
ElBlues



Anmeldungsdatum: 25.03.2008
Beiträge: 127

BeitragVerfasst am: 10. Mai 2009 10:00   Titel: Library erzeugen - Symbolprobleme

Hi,

ich nutze aktuell folgendes Makefile um mir eine Library zu erzeugen (dass keine zusätzlichen Symlinks auf die Library erzeugt werden ist dabei gewollt):

Code:
CCOMPILER=g++ -Wall -Wno-unused -fPIC -g0 -O2 -D_REENTRANT -DENV_LINUX -I .  -I ..

# system libraries. These are needed by ACDK at least
SYSLIBRARIES=
#-lpthread -lm -ldl

# all libs together

LIBS = $(SYSLIBRARIES)
# -Wl,-Bdynamic -L$(ACDKHOME)/bin $(ACDKLIBS)

EXECUTABLE=../ioplugins/libio_network_in.so

# want maybe to debug
LINK=g++ -shared

OBJECTS = libio_network_in.o

default: $(EXECUTABLE)

# builds the executable itself
# don't forget to export LD_LIBRARY_PATH=/artefaktur/acdk/bin before execute the binary
$(EXECUTABLE): $(OBJECTS)
        $(LINK) $(SYSLDFLAGS) $(LDFLAGS) -o $(EXECUTABLE) $(OBJECTS) $(LIBS)


%.o: %.cpp
        $(CCOMPILER) -c $< -o $@

clean:
        rm $(OBJECTS) $(EXECUTABLE)


Mein Problem dabei: Diese Library exportiert massenhaft symbole, nicht nur die, die gewollt sind (so lustige Dinge wie sprintf). Wenn ich die Symbole mit strip enfterne, sind natürlich alle Weg, inklusive der erwünschten.

Meine Frage deswegen: gibt es einen Weg, explizit zu definieren, welche Symbole die Library tatsächlich exportieren soll, so das alles überflüssige wegbleibt?

Hintergrund: das Gesamtpaket soll auf einem eher schwachbrüstigen Embedded-System laufen - und da muss ich mit jedem Byte geizen.
_________________
http://www.kaufkauf.net - nie wieder Einkäufe vergessen!
 
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen

Janka



Anmeldungsdatum: 11.02.2006
Beiträge: 3569

BeitragVerfasst am: 12. Mai 2009 14:39   Titel:

Es werden grundsätzlich *alle* Symbole exportiert, die keine dem entgegenstehende Speicherklasse ("static", "inline" etc.) oder ein entsprechendes Attribut (visibility) besitzen.

http://people.redhat.com/drepper/dsohowto.pdf
http://gcc.gnu.org/onlinedocs/gcc/Code-Gen-Options.html#index-fvisibility-1837
http://gcc.gnu.org/wiki/Visibility

Janka
_________________
Ich vertonne Spam immer in /dev/dsp statt /dev/null.
Ich mag die Schreie.
 
Benutzer-Profile anzeigen Private Nachricht senden

Beiträge vom vorherigen Thema anzeigen:   
     Pro-Linux Foren-Übersicht -> Programmieren - C Alle Zeiten sind GMT + 1 Stunde
Seite 1 von 1

 
Gehen Sie zu:  

Powered by phpBB © phpBB Group
pro_linux Theme © 2004 by Mandaxy