.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önnte

    habt 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 :))


Anmelden zum Antworten