Hallo,
was den gcc angeht bin ich Anfänger.
Ich versuche gerade slookup.c zu übersetzen (http://he.fi/slookup/)
so wie im README angegeben. Also:
$ make
gcc -Wall -Wstrict-prototypes -O3 -c slookup.c
slookup.c:40:16: db.h: Datei oder Verzeichnis nicht gefunden
make: *** [slookup.o] Fehler 1
Die angemeckerte Zeile steht in slookup.c so da:
#include
Hallo, * Ralph Müller [15.05.2005 18:14]:
was den gcc angeht bin ich Anfänger. Ich versuche gerade slookup.c zu übersetzen (http://he.fi/slookup/) so wie im README angegeben. Also:
$ make gcc -Wall -Wstrict-prototypes -O3 -c slookup.c slookup.c:40:16: db.h: Datei oder Verzeichnis nicht gefunden make: *** [slookup.o] Fehler 1
Die angemeckerte Zeile steht in slookup.c so da:
#include
Ein "find / -name db.h -type f" erbrachte das Ergebnis, daß tatsächlich eine Datei diesen Namens existiert, im Pfad /usr/include/db1/db.h
Wie kann ich make auf diesen Pfad mit meiner db.h stupsen? (führen)
Entweder das Makefile so ändern, dass gcc -I/usr/include/db1 -Wall -Wstrict-prototypes -O3 -c slookup.c aufgerufen wird. Allerdings glaube ich, dass du ein benötigtes Paket nicht installiert hast. Bei mir (SuSE 9.2) gibt es das Paket db-devel, das /usr/include/db.h enthält und das somit keine Änderung im Makefile erforder.
PS: Kennt jemand zufällig die Funktion dieser ominösen db.h?
Berkeley-Datenbank. file:///usr/share/doc/packages/db/index.html Gruß, Bernhard
Hallo Bernhard und Lothar, hallo Liste,
* Bernhard Walle
* Ralph Müller [15.05.2005 18:14]:
slookup.c:40:16: db.h: Datei oder Verzeichnis nicht gefunden
Entweder das Makefile so ändern, dass
gcc -I/usr/include/db1 -Wall -Wstrict-prototypes -O3 -c slookup.c
Stimmt, damit klappt's auf einmal. *hurra*
aufgerufen wird. Allerdings glaube ich, dass du ein benötigtes Paket nicht installiert hast. Bei mir (SuSE 9.2) gibt es das Paket db-devel, das /usr/include/db.h enthält und das somit keine Änderung im Makefile erforder.
Aber das bedeutet ja auch, daß es in verschiedenen Verzeichnissen gleichnamige Dateien gibt? Das finde ich ist ja auch nicht so der Hit. $ rpm -qf /usr/include/db1/db.h glibc-devel-2.3.2-92 $ rpm -qi db-devel Paket db-devel ist nicht installiert
PS: Kennt jemand zufällig die Funktion dieser ominösen db.h?
Berkeley-Datenbank. file:///usr/share/doc/packages/db/index.html
Komisch. Ich habe mir gerade überlegt wieso slookup.c wohl eine
Datenbank benötigt, und komme mit diesem Gedanken auf keinen grünen
Zweig. Ich habe daher gerade mal versuchsweise die Zeile
"#include
Am 15.05.2005 um 20:21 schrieb Ralph Müller:
Hallo Bernhard und Lothar, hallo Liste,
Vielleicht ist der Code, der db.h benötigt, auskommentiert (#define ...). Kann durch das configure Script passieren, das normalerweise vor einem Build durchgeführt wird. Evtl. hat der Autor nur vergessen, auch die db.h mit aus zu kommentieren.
* Bernhard Walle
schrieb: * Ralph Müller [15.05.2005 18:14]:
slookup.c:40:16: db.h: Datei oder Verzeichnis nicht gefunden
Entweder das Makefile so ändern, dass
gcc -I/usr/include/db1 -Wall -Wstrict-prototypes -O3 -c slookup.c
Stimmt, damit klappt's auf einmal. *hurra*
aufgerufen wird. Allerdings glaube ich, dass du ein benötigtes Paket nicht installiert hast. Bei mir (SuSE 9.2) gibt es das Paket db-devel, das /usr/include/db.h enthält und das somit keine Änderung im Makefile erforder.
Aber das bedeutet ja auch, daß es in verschiedenen Verzeichnissen gleichnamige Dateien gibt? Das finde ich ist ja auch nicht so der Hit.
$ rpm -qf /usr/include/db1/db.h glibc-devel-2.3.2-92
$ rpm -qi db-devel Paket db-devel ist nicht installiert
PS: Kennt jemand zufällig die Funktion dieser ominösen db.h?
Berkeley-Datenbank. file:///usr/share/doc/packages/db/index.html
Komisch. Ich habe mir gerade überlegt wieso slookup.c wohl eine Datenbank benötigt, und komme mit diesem Gedanken auf keinen grünen Zweig. Ich habe daher gerade mal versuchsweise die Zeile "#include
" gelöscht, und das Kompilieren klappt auch, und das Ding scheint sogar auch ohne diese include-Zeile zu funktionieren. Fragt sich ob in der slookup.c noch mehr von solchem Füllmaterial drin ist. Sehr seltsam. -Ralph (dem gerade noch eine passendere Thread-Überschrift einfällt -- in Anlehnung an Wilhelm Busch: "Die Datei wird leicht vermißt wenn make sie sucht wo sie nicht ist.")
-- Um die Liste abzubestellen, schicken Sie eine Mail an: suse-programming-unsubscribe@suse.com Um eine Liste aller verfügbaren Kommandos zu bekommen, schicken Sie eine Mail an: suse-programming-help@suse.com
Ralph Müller schrieb:
* Bernhard Walle
schrieb: * Ralph Müller [15.05.2005 18:14]:
slookup.c:40:16: db.h: Datei oder Verzeichnis nicht gefunden
Entweder das Makefile so ändern, dass
gcc -I/usr/include/db1 -Wall -Wstrict-prototypes -O3 -c slookup.c
Stimmt, damit klappt's auf einmal. *hurra*
aufgerufen wird. Allerdings glaube ich, dass du ein benötigtes Paket nicht installiert hast. Bei mir (SuSE 9.2) gibt es das Paket db-devel, das /usr/include/db.h enthält und das somit keine Änderung im Makefile erforder.
Aber das bedeutet ja auch, daß es in verschiedenen Verzeichnissen gleichnamige Dateien gibt? Das finde ich ist ja auch nicht so der Hit.
Wieso nicht? Das ist doch gerade einer der Vorteile von Verzeichnissen, dass man nicht mehr über den gesamten Datenträger eindeutige Dateinamen wählen muss. Im vorliegenden Fall hat das sogar einen ganz konkreten Sinn, weil die Berkeley DB leider in diversen dateiinkompatiblen Versionen kursiert. /usr/include/db1/db.h ist die db.h für Version 1, die auf einem meiner Systeme existierende /usr/include/db2/db.h wäre dann die für Version 2, und auf der gcc-Kommandozeile kann man dann entscheiden, welche Version man gerade will.
Komisch. Ich habe mir gerade überlegt wieso slookup.c wohl eine Datenbank benötigt, und komme mit diesem Gedanken auf keinen grünen Zweig. Ich habe daher gerade mal versuchsweise die Zeile "#include
" gelöscht, und das Kompilieren klappt auch, und das Ding scheint sogar auch ohne diese include-Zeile zu funktionieren. Fragt sich ob in der slookup.c noch mehr von solchem Füllmaterial drin ist. Sehr seltsam.
Es gibt genug Programmierer, die routinemäßig alles includen, was sie in der Vergangenheit irgendwann einmal gebraucht haben oder was sie eventuell irgendwann einmal brauchen könnten. -- Tilman Schmidt t.schmidt@phoenixsoftware.de Phoenix Software GmbH Tel. +49 228 97199 0 Adolf-Hombitzer-Str. 12 Fax +49 228 97199 99 53227 Bonn, Germany http://www.phoenixsoftware.de
participants (4)
-
Bernhard Walle
-
Lothar Behrens
-
Ralph Müller
-
Tilman Schmidt