• Willkommen im Linux Club - dem deutschsprachigen Supportforum für GNU/Linux. Registriere dich kostenlos, um alle Inhalte zu sehen und Fragen zu stellen.

[gelöst][C++] Bibliotheken einbinden mit MAKE

Zenturio

Newbie
Hallo!

Ich habe ein Problem mit dem Compilieren einiger C++ Dateien. Und zwar will ich das CUDD Paket zur Manipulation von Entscheidungsdiagrammen nutzen. Dazu muß man einige Header includen und eine Reihe von Bibliotheken dazulinken. Leider bin ich einfach zu blöd, das dazugehörige Makefile zu schreiben, Bisher bich ich bei meiner Internetrecherche auf nichts Erhellendes gestoßen, vielleicht weiß hier jemand Rat? Nach langem Probieren und Pfuschen sieht mein verhunztes Makefile so aus:

Code:
CCP = g++
CUDD = /home/xxx/xxxxx/software/cudd-2.4.1
LDFLAGS = $(CUDD)/cudd/libcudd.a $(CUDD)/mtr/libmtr.a $(CUDD)/st/libst.a $(CUDD)/util/libutil.a $(CUDD)/obj/libobj.a

all: verify_mux

libcut:
	cd $(CUDD)/cudd; $(MAKE)

libmtr:
	cd $(CUDD)/mtr; $(MAKE) 
	
libst:
	cd $(CUDD)/st; $(MAKE) 	
	
libutil:
	cd $(CUDD)/util; $(MAKE) 
	
libobj: 
	cd $(CUDD)/obj; $(MAKE) 
	
main.o: main.cpp $(CUDD)/include/util.h $(CUDD)/include/cudd.h $(CUDD)/include/cuddObj.hh
	$(CCP) -c main.cpp  $(CUDD)/include/util.h $(CUDD)/include/cudd.h $(CUDD)/include/cuddObj.hh
	
verify_mux: libcut libmtr libst libutil libobj main.o 
	$(CCP) -g -o verify_mux main.o $(LDFLAGS)

Wie bekomme ich nun die Libs dazu, so daß die undefinded references und andere Fehler verschwinden?
 

abgdf

Guru
Ich würde sagen, versuch's doch mal direkt mit einem "g++"-Befehl zu kompilieren.
Für die Libraries guck Dir dann mal die "-l" und "-L"-Optionen von "g++" an.

Gruß
 
Code:
   $(CCP) -c main.cpp  $(CUDD)/include/util.h $(CUDD)/include/cudd.h $(CUDD)/include/cuddObj.hh[/quote]
Man 'kompiliert' ja auch keine .h-Dateien...
 
OP
Z

Zenturio

Newbie
Weiß ich eigentlich auch, den Abschnitt habe ich aus einem anderen Projekt übernommen, ohne zu wissen, warum das dort so funktioniert.
 
OP
Z

Zenturio

Newbie
Könnte mir den jemand sagen, wie man generell Bibliotheken der Form .a einbindet? Dann kann ich mir den Rest sicher zurechtbasteln.
 

abgdf

Guru
Wenn libmine.a im Verzeichnis ist:
Code:
gcc myprog.c -lmine -L.
Auch:

http://www.sts.tu-harburg.de/projects/Tycoon/info/staticLink.html

Gruß
 
Oben