PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Was macht eigentlich "make" ?



kMax
15.09.04, 11:42
Hallo alle zusammen,
da ich der Meinung bin meinen Newbeestatus abgelegt zu haben bin ich von Suse auf Slackware 10.0 gewechselt und stehe nun (wer hätte es gedacht) vor einem Problem. Ich möchet den Druckertreiber meines Canon i990 installieren.
Den Treiber habe ich von canon.jp runtergeladen und zunächst das Packet bjfilter-2.4-0.tar.gz entpackt. Darin ist ein autogen.sh enthalten was ich, wie in der README beschrieben, ausgeführt habe. Nach erfolgreicher Ausführung soll ich nun make durchlaufen lassen.
Ergebniss:

make all-recursive
make[1]: Entering directory `/root/Desktop/i990/bjfilter-2.4-0'
Making all in src
make[2]: Entering directory `/root/Desktop/i990/bjfilter-2.4-0/src'
gcc -O2 -o bjfilter bjferror.o bjfilter.o bjfimage.o bjfoption.o bjfpos.o bjfrcaccess.o getipc.o bjflist.o -lcnbpcmcm189 -lcnbpess189 -lm -ldl -ltiff -lpng -lcnbpcnclapi189 -lcnbpcnclbjcmd189 -lcnbpcnclui189 /usr/lib/libpopt.a
/usr/lib/gcc-lib/i486-slackware-linux/3.3.4/../../../../i486-slackware-linux/bin/ld: cannot find -lcnbpcmcm189
collect2: ld returned 1 exit status
make[2]: *** [bjfilter] Error 1
make[2]: Leaving directory `/root/Desktop/i990/bjfilter-2.4-0/src'
make[1]: *** [all-recursive] Error 1
make[1]: Leaving directory `/root/Desktop/i990/bjfilter-2.4-0'
make: *** [all] Error 2

Natürlich habe ich schon bei googel und auch in diesem Forum gesucht und viele Beiträge mit ähnlichen Meldungen gefunden. Doch anscheinend sind das immer individuelle Probleme. Wenn mir hierbei jemand helfen könnte fände ich das sehr toll, doch was mich auch interessieren würde ist:
Wie kann ich solch eine Fehlermeldung verstehen. Was kann man daraus erkennen. Wie kann ich selbst in der Lage sein dem Problem auf die Schliche zu kommen?
Kennt jemand von euch eine HowTo oder etwas vergleichbares das sich mit den grundlegenden Dingen des Dreisatzes "configure,make,make install" beschäftigt.
Schonmal vielen Dank im Vorraus,
Max

`kk
15.09.04, 11:52
Auf http://linuxprinting.org ist dein Drucker nicht zu finden?



Hallo alle zusammen,
da ich der Meinung bin meinen Newbeestatus abgelegt zu haben bin ich von Suse auf Slackware 10.0 gewechselt und stehe nun (wer hätte es gedacht) vor einem Problem.


Kann nich sein, ich bin auch Anfänger.

Schmolleg
15.09.04, 11:53
Grob gesagt mit make kompilierst du (c++ -> Maschinensprache).

Schau dir doch die Meldung mal richtig an:

cannot find -lcnbpcmcm189

Ich weis zwa nicht was du machen must aber du brauchst cnbpcmcm189

`kk
15.09.04, 12:00
Grob gesagt mit make kompilierst du (c++ -> Maschinensprache).


Sicher?
Ich dachte das macht gcc. :ugly:
Make linkt alle Projektdateien (die im Makefile stehen) zu einem ausführbaren Programm zusammen.

derguteweka
15.09.04, 12:08
Moin,


Sicher?
Ich dachte das macht gcc. :ugly:
Make linkt alle Projektdateien zu einem ausführbaren Programm zusammen.

(Viele *.o's -> bin)
Sicher?
Ich dachte das macht der linker ld. :ugly:

Sorry, aber make macht was ganz anderes.
make kann nach bestimmten Regeln (in make eingebaute und weitere Regeln im Makefile) und mit Hilfe von anderen Applikationen (oft gcc und seine Kumpels) entscheiden, ob und wie ein File durch eine Applikation bearbeitet werden muss, damit irgendein Ergebnis (auch ein File) entsteht. Sonst kann make nix, also nicht kompilieren, assemblieren, linken oder gar installieren. Das machen alles Applikationen, die von make entsprechend aufgerufen werden.
Ich hab hier irgendwo im Forum mein ich mal ein Makefile gepostet, mit dem man .wav Dateien im .mp3 Dateien umwandeln kann. Natuerlich ruft make dazu dann eben lame auf.

Gruss
WK

`kk
15.09.04, 12:13
Spielverderber. :ugly:

Schmolleg
15.09.04, 13:03
Ja, ja das weiß ich auch, stellt euch vor ich kann sogar etwas c++. Ich wolltes nur sehr leicht verständlich machen !!!

fs111
15.09.04, 13:09
Ja, ja das weiß ich auch, stellt euch vor ich kann sogar etwas c++. Ich wolltes nur sehr leicht verständlich machen !!!

Was wird leicht verständlich, wenn Du bewusst völlig falsche Sachen von Dir gibst?

fs111

Schmolleg
15.09.04, 17:56
Type `make' to compile the package

Steht fast in allen Sourcen von Programmen in der README oder INSTALL, damit es jeder Arsch versteht.

Hier ist aber jemand ganzschön penibel :D

kMax
15.09.04, 22:32
Cool,

ich sag dann schon mal vielen Dank fuer die Tips und Tricks und werd mir mal morgen so nen dicken Linuxschinken kaufen. Da gibt es so ein Buch das neulich in der 7ten Auflage rauskam. Ist recht dick, daher hab ich mich nie dran getraut. Aber ich denke es ist an der Zeit mal nen Blick reinzuwerfen.

Liebe Grue(scharfes s)e,
Max

fs111
16.09.04, 09:24
Übringesn gibt es make auch unter Windows. Microsoft benutzt das z.B. auch, das ist also nicht unbedingt eine typisch unixoide Sache, wobei natürlich ein normaler Win-Benutzer mit sowas nie in Berührung kommt, ein Unix-User schon...

fs111