PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Kann vmailmgr nicht kompilieren weil strlen und strcopy nicht da sind


thabermann
14.05.01, 10:49
Ich habe mir das vmailmgr Paket heruntergeladen und es mit ./configure konfiguriert. Das hat auch klaglos funktioniert. Bei make aber hält das Skript dann an und macht folgende Ausgabe:

c++ -DHAVE_CONFIG_H -I. -I. -I../.. -I.. -g -O2 -fno-rtti -fno-exceptions -Wa
ll -W -c exec.cc
exec.cc: In function `int presetenv (const char *, const mystring &)':
exec.cc:29: `strlen' undeclared (first use this function)
exec.cc:29: (Each undeclared identifier is reported only once for each
function it appears in.)
exec.cc:31: `strcpy' undeclared (first use this function)
make[3]: *** [exec.o] Fehler 1
make[3]: Verlassen des Verzeichnisses Verzeichnis ╗/home/smbadmin/mailserver/vma
ilmgr-0.96.9/lib/misc½
make[2]: *** [all-recursive] Fehler 1
make[2]: Verlassen des Verzeichnisses Verzeichnis ╗/home/smbadmin/mailserver/vma
ilmgr-0.96.9/lib½
make[1]: *** [all-recursive] Fehler 1
make[1]: Verlassen des Verzeichnisses Verzeichnis ╗/home/smbadmin/mailserver/vma
ilmgr-0.96.9½
make: *** [all-recursive-am] Fehler 2

Da dort steht strlen undeclared denke ich dass das Programm irgendwie die Bibliotheken mit den Standardfunktionen nicht findet. Ich denke aber zumindest dass die installiert sind, genau weiß ich es nicht, aber ich habe schon einige Programme kompiliert und strcpy verwendet ja sogut wie jedes Programm. Was kann ich also tun? Ich rufe make übrigens aus einer su Sitzung über Telnet auf, da fehlen die Umgebungsvariablen. Macht das was?

rbla
14.05.01, 17:06
was hast du eigentlich für ne distri?

an den umgebungsvariablen sollte es nicht liegen, aber mit "su - smbadmin" kriegst du die einstellungen eines normalen logins
oder kompilierst du etwa als root?

thabermann
14.05.01, 20:19
Ich habe RedHat 7.0. Ich kompiliere normalerweise als normaler User und installiere dann als root, wie es sich gehört. Inzwischen hab ich es auch direkt am Computer versucht, erfolglos. smbadmin ist ein Account der lediglich für das Samba auf dem gleichen Rechner Privilegien hat, ansonsten ist es ein ganz normaler User. (Ich installiere das E-Mail System halt erst auf diesem Test-Rechner um es dann wenn ich es hinkriege in den ernsten Einsatz zu übernehmen).

Ich habe zwar noch nicht viel mit C gemacht aber die Fehlermeldung heißt im Klartext doch eigentlich nur dass die Standardbibliothek fehlt, die strlen und strcpy enthält, also stdio.h, korrekt? Da die Programmierer ja warscheinlich nicht grade die include Anweisung vergessen haben werden wundere ich mich das der Compiler da noch nicht meckert, wo er doch die Header Datei nicht findet! Andererseits funktionieren alle möglichen Programme beim Kompilieren und wer kommt schon ohne stdio.h aus??? Ich tippe also mal darauf dass ein Pfad nicht stimmt oder irgendwas anderes schiefläuft von dem ich keine Ahnung hab :( Ich habe mittlerweile die aktuelle 9.6.9 Version als auch die im Qmail-Vmailmgr-Courier IMAP verwendete 9.6.6 probiert.

rbla
15.05.01, 08:14
erstmal würde ich dir empfehlen, die i386.rpms zu benutzen (http://untroubled.org)

da es ein c++ prog ist, würde ich fast mal auf ein gcc problem tippen, hast du eine aktuelle version drin? (>= 2.96-69)
und ein update auf redhat 7.1 ist *sehr* zu empfehlen, .0 ist nunmal .0 ;)