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: Select all
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)
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.