.so per kommandozeile kompilieren
-
Habe etwas darüber in der FAQ geschrieben
-
-
ach is mir zu aufwändig bei der menge an files... benutz ich halt weiter das alte codewarrior
-
schreib dir doch einfach eine Makefile. Ich kann wenn du willst dir eine Makefile geben, die dir alle Code-Dateien zu einer .so zusammenlinkt.
-
hab mal nach nem makefile howto geschaut aber die die ich gefunden hab sahn schon wieder so komplex und umständlich aus...
da sollte eigentlich nur drin stehn wo die header hinkommen, wo die sourcen und wie ich die makefile kompiliere... mehr will ich ja garned wissen
-
HTH
TARGET=libfoo.so #hier library namen eintragen VERSION=0.01 #hier die Version eintragen CXX=g++ CXXFLAGS=-Wall -W -fPIC -DPIC -g #hier die gcc Flags eintragen CXXLINK=-shared -Wl,-soname,$(TARGET).1 #hier Flags für den Linker sources:=$(wildcard *.cc) #wählt alle Dateien mit .cc-Postfix aus (ggf. anpassen) objects=$(patsubst %.cc,%.o,$(sources)) #hier auch ggf. das .cc ändern all: $(objects) $(CXX) $(CXXLINK) -o $(TARGET).$(VERSION) $(objects) ln -fs $(TARGET).$(VERSION) $(TARGET).1 ln -fs $(TARGET).1 $(TARGET) %.o: %.cc $(CXX) $(CXXFLAGS) -c $< -o $@ .PHONY: clean completeclean clean: @rm -f *.o completeclean: @rm -f *.o *.so* a.out
-
jetzt müsste man ja nur noch wissen was der da macht... merk schon ich brauch ma wieder n neues buch
-
musst ja nur die markierten Stellen ändern, den Rest macht der von alleine (sucht alle *.ccs und kompiliert die eine .so Library)
-
hab mir nu n buch besorgt und mir n ähnliches script geschrieben
blöderweise fällt mir kein helferlein mehr ein, dass ich zum c++ programmiern noch brauchen könntehabt ihr n paar ideen? (brauch n bissi übung... sonst vergess ich die syntax gleich wieder)
-
ach, eigentlich kommst du mit einem Makeskript für Librarys und einem für Programme immer weiter. Den Rest, den du an Make brauchst, der ist idr. intuitiv
Ansonsten schau dir mal autoconf, automake und libtool an. Wobei du da leicht ...naja, dass kotzen, bekommen dürftest
(wobei autoconf noch das schönste Tool ist :))