Makefile & uninstalled Library



  • Hallo,

    bei der Anpassung eines Programmes muss ich eine Bibliothek verwenden, die nicht installiert ist.
    Die Header-Dateien dieser Bib stehen unter: home/cpplinux/MeineBib/Header_Files
    Die Bib steht unter: home/cpplinux/Meinebib/lib/MeineBib.a

    Was muss ich in mein Makefile hinfügen, damit diese Bibliothek vom Compiler anerkannt wird? darf ich die -L und -l auch für uninstalled libraries verwenden?

    Ich möchte meine Bib nach der folgenden installierten Bib im mein Makefile hinfügen

    GRAPH_dir         = /opt/SIMON/GRAPH/latest
    GRAPH_includedir  = $(GRAPH_dir)/include
    GRAPH_libdir      = $(GRAPH_dir)/lib
    GRAPH_include     = -I$(GRAPH_includedir)
    GRAPH_ldflags     = -L$(GRAPH_libdir)
    GRAPH_ldadd       = -lGRAPHGUI
    

    Danke im Voraus,

    CL



  • wie "nicht" installiert? Sie sind doch bei dir vorhanden??

    Mit -I kannst du dem Compiler sagen, wo die Header sich befinden und mit -L wo die Library sich befindet. Ersteres kommt in die CFLAGS/CXXFLAGS und letzteres in die LIBS oder LDFLAGS.



  • @Rüdiger ---->
    Also, im GNU Make Tutorial wird von installed und uninstalled Libraries geredet.
    Ich glaube bei installed sind die Bibs gemeint, die in einem Standard-Ordner stehen (z.B usr/lib).

    Du meinst ich soll das dann so machen:

    MeineBib_dir            = /home/cpplinux/MeineBib/
    MeineBib_includedir     = $(MeineBib_dir)/Header_Files
    MeineBib_libdir         = $(MeineBib_dir)/lib
    MeineBib_include        = -I$(MeineBib_includedir)
    MeineBib_ldflags        = -L$(MeineBib_libdir)
    MeineBib_ldadd          = -lMeineBib
    
    #------------------------------------------------------------
    # Compiler and compilter options
    #------------------------------------------------------------
    CC                = /opt/SIMON/gcc-4.0.2/bin/g++ 
    CC_flags          =  -g3 -Wall -Wno-deprecated
    CC_include        = $(GRAPH_include)[b]$(MeineBib_include)[/b] 
    CC_ldflags        = $(GRAPH_ldflags)[b]$(MeineBib_ldflags)[/b]   
    CC_ldadd          = $(GRAPH_ldadd)[b]$(MeineBib_ldadd)[/b]
    

    Das hat aber so nicht funktioniert. Ich kriege die folgende Fehlermeldung

    usr/bin/ld: cannot find -lMeineBib


Anmelden zum Antworten