Simples Apache-Modul: httpd.h fehlerhaft?

moses_78

moses_78

Aktives Mitglied
Thread Starter
Dabei seit
08.04.2005
Beiträge
1.288
Reaktionspunkte
22
Hallo Zusammen,

anhand dieser kleinen Anleitung habe ich versucht, mir ein Apache-Modul
zu schreiben. Leider ist es beim Versuch geblieben, denn sobald ich "make"
ausführe, bekomme ich einen Rattenschwanz an Warnings und Errors:
Code:
source='mod_ka.c' object='mod_ka.lo' libtool=yes \
depfile='.deps/mod_ka.Plo' tmpdepfile='.deps/mod_ka.TPlo' \
depmode=gcc3 /bin/sh ./depcomp \
/bin/sh ./libtool --mode=compile gcc -DPACKAGE_NAME=\"\" -DPACKAGE_TARNAME=\"\" -DPACKAGE_VERSION=\"\" -DPACKAGE_STRING=\"\" -DPACKAGE_BUGREPORT=\"\" -DPACKAGE=\"mod_ka\" -DVERSION=\"1.0\" -DSTDC_HEADERS=1 -DHAVE_SYS_TYPES_H=1 -DHAVE_SYS_STAT_H=1 -DHAVE_STDLIB_H=1 -DHAVE_STRING_H=1 -DHAVE_MEMORY_H=1 -DHAVE_STRINGS_H=1 -DHAVE_INTTYPES_H=1 -DHAVE_STDINT_H=1 -DHAVE_UNISTD_H=1 -DHAVE_DLFCN_H=1  -I. -I. -I/Eigene_Dateien/apache2/include    -g -O2 -c -o mod_ka.lo `test -f 'mod_ka.c' || echo './'`mod_ka.c
 gcc -DPACKAGE_NAME=\"\" -DPACKAGE_TARNAME=\"\" -DPACKAGE_VERSION=\"\" -DPACKAGE_STRING=\"\" -DPACKAGE_BUGREPORT=\"\" -DPACKAGE=\"mod_ka\" -DVERSION=\"1.0\" -DSTDC_HEADERS=1 -DHAVE_SYS_TYPES_H=1 -DHAVE_SYS_STAT_H=1 -DHAVE_STDLIB_H=1 -DHAVE_STRING_H=1 -DHAVE_MEMORY_H=1 -DHAVE_STRINGS_H=1 -DHAVE_INTTYPES_H=1 -DHAVE_STDINT_H=1 -DHAVE_UNISTD_H=1 -DHAVE_DLFCN_H=1 -I. -I. -I/Eigene_Dateien/apache2/include -g -O2 -c mod_ka.c -MT mod_ka.lo -MD -MP -MF .deps/mod_ka.TPlo  -fno-common -DPIC -o .libs/mod_ka.o
In file included from /Eigene_Dateien/apache2/include/httpd.h:43,
                 from mod_ka.c:1:
/Eigene_Dateien/apache2/include/ap_config.h:25:17: error: apr.h: No such file or directory
/Eigene_Dateien/apache2/include/ap_config.h:26:23: error: apr_hooks.h: No such file or directory
/Eigene_Dateien/apache2/include/ap_config.h:27:32: error: apr_optional_hooks.h: No such file or directory
In file included from /Eigene_Dateien/apache2/include/httpd.h:46,
                 from mod_ka.c:1:
/Eigene_Dateien/apache2/include/ap_release.h:24:41: error: apr_general.h: No such file or directory
In file included from mod_ka.c:1:
/Eigene_Dateien/apache2/include/httpd.h:50:24: error: apr_tables.h: No such file or directory
/Eigene_Dateien/apache2/include/httpd.h:51:23: error: apr_pools.h: No such file or directory
/Eigene_Dateien/apache2/include/httpd.h:52:22: error: apr_time.h: No such file or directory
/Eigene_Dateien/apache2/include/httpd.h:53:28: error: apr_network_io.h: No such file or directory
/Eigene_Dateien/apache2/include/httpd.h:54:25: error: apr_buckets.h: No such file or directory
/Eigene_Dateien/apache2/include/httpd.h:55:22: error: apr_poll.h: No such file or directory
In file included from /Eigene_Dateien/apache2/include/httpd.h:59,
                 from mod_ka.c:1:
[*snip*]
/Eigene_Dateien/apache2/include/httpd.h:723:21: error: apr_uri.h: No such file or directory
[*snip*]
/Eigene_Dateien/apache2/include/http_config.h:291: error: parse error before '*' token
[*snip*]
/Eigene_Dateien/apache2/include/http_config.h:566: error: parse error before 'apr_pool_t'
/Eigene_Dateien/apache2/include/http_config.h:582: error: parse error before 'apr_pool_t'
/Eigene_Dateien/apache2/include/http_config.h:607: error: parse error before 'ap_pcfg_openfile'
/Eigene_Dateien/apache2/include/http_config.h:608: error: parse error before 'apr_pool_t'
/Eigene_Dateien/apache2/include/http_config.h:608: warning: data definition has no type or storage class
/Eigene_Dateien/apache2/include/http_config.h:619: error: parse error before '*' token
/Eigene_Dateien/apache2/include/http_config.h:622: error: 'ap_pcfg_open_custom' declared as function returning a function
[*snip*]

Was mich daran wundert: Wie kann es zu Fehlern wie "parse error"
kommen? Die httpd.h habe ich nach dem Installieren aus den Sourcen
(Version 2.2.2) nicht angerührt. Außerdem: Die Headerdatei "apr_hooks.h"
ist nichtmal in der APR-Bibliothek von apache.org dabei.

Vielleicht hat ja einer von euch Erfahrung mit dieser Thematik, oder
sonst 'nen Tipp, was ich machen könnte. Beim googeln bin ich über
Postings von Leuten mit ähnlichen Problemen gestoßen, die aber daran
lagen, dass sie einen Apache als Paket installiert hatten, der ohne Header-
Dateien daherkam.

Danke für eure zahlreichen Tipps im Vorraus,
Mathias

PS. GNU automake Version 1.6.3, GNU Autoconf 2.59
PS2. Wenn jemand 'nen Plan hat, wie ich das Ganze ohne libtool,
automake, etc. als DSO bauen kann - Nur her damit :)
 
interessant sind eh immer nur die ersten Meldungen, der Rest sind Folgefehler. Ich denke hier:

/Eigene_Dateien/apache2/include/ap_config.h:25:17: error: apr.h: No such file or directory
/Eigene_Dateien/apache2/include/ap_config.h:26:23: error: apr_hooks.h: No such file or directory
/Eigene_Dateien/apache2/include/ap_config.h:27:32: error: apr_optional_hooks.h: No such file or directory

liegt das Problem. Es fehlen Header-Dateien resp. deren Include-Pfade!
 
wegus schrieb:
interessant sind eh immer nur die ersten Meldungen, der Rest sind Folgefehler. Ich denke hier:

/Eigene_Dateien/apache2/include/ap_config.h:25:17: error: apr.h: No such file or directory
/Eigene_Dateien/apache2/include/ap_config.h:26:23: error: apr_hooks.h: No such file or directory
/Eigene_Dateien/apache2/include/ap_config.h:27:32: error: apr_optional_hooks.h: No such file or directory

liegt das Problem. Es fehlen Header-Dateien resp. deren Include-Pfade!
Dass war mir bewusst :)

Die Frage für mich ist viel eher: Wo bekomme ich diese Header-Dateien?
Und vor allem: Warum werden sie von der httpd.h (im gleichen Verzeich-
nis!) inkludiert, wenn sie doch gar nicht "da" sind?

Ich kriege hier langsam 'nen Affen, vor allem, weil alle Anleitungen, auch
mein hochgeschätztes Apache-Handbuch von O'Reilly, einen ähnlichen Ab-
lauf schildern, wie bei dem Tutorial, dass ich verwendet habe.....
 
So, mittlerweile funktioniert's. Ich habe mir nochmal einen Apache
2.2.0 installiert, bei dem dann alle Header-Dateien dabei waren.

Da fragt sich bloss, warum die neuste Version noch ohne apr.h, etc.
daherkommt :kopfkratz:
 
@moses: sieh Dir mal die Struktur und Doku zu den Java-Projekten bei Apache an, dann wundert Dich dort nicht mehr sooo viel ;)

Die Sachen sind alle sehr gut, allerdings kommen die mit dokumentieren nicht wirklich nach!
 
Zurück
Oben Unten