2016-06-24 4 views
0

Ich habe versucht, Perl 5-22.0 lokal auf einem Server zu installieren (unter SUSE Linux x86_64). Ich konnte auf dem Quellcode laufen .configure, aber nach dem Befehl make erhielt ich folgende Fehlermeldung:ODBM_File.xs: zu wenige Argumente für die Funktion 'dbmclose' beim Erstellen von Perl

CE=2 -Wall -Werror=declaration-after-statement -Wextra -Wc++-compat -Wwrite-strings -O2 -DVERSION=\"1.12\" -DXS_VERSION=\"1.12\" -fPIC "-I../.." ODBM_File.c 
ODBM_File.xs: In function ‘XS_ODBM_File_DESTROY’: 
ODBM_File.xs:128: error: too few arguments to function ‘dbmclose’ 
make[1]: *** [ODBM_File.o] Error 1 
make[1]: Leaving directory `/home1/02568/mshpak/perl/perl-5.22.0/ext/ODBM_File' 
make[1]: Entering directory `/home1/02568/mshpak/perl/perl-5.22.0/ext/ODBM_File' 
cc -c -fwrapv -fno-strict-aliasing -pipe -fstack-protector -I/usr/local/include -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -D_FORTIFY_SOURCE=2 -Wall -Werror=declaration-after-statement -Wextra -Wc++-compat -Wwrite-strings -O2 -DVERSION=\"1.12\" -DXS_VERSION=\"1.12\" -fPIC "-I../.." ODBM_File.c 
ODBM_File.xs: In function ‘XS_ODBM_File_DESTROY’: 
ODBM_File.xs:128: error: too few arguments to function ‘dbmclose’ 
make[1]: *** [ODBM_File.o] Error 1 
make[1]: Leaving directory `/home1/02568/mshpak/perl/perl-5.22.0/ext/ODBM_File' 
Unsuccessful make(ext/ODBM_File): code=512 at make_ext.pl line 574. 
make: *** [lib/auto/ODBM_File/ODBM_File.so] Error 25 

Was Fehlercode 512 ist, und gibt es eine einfache Möglichkeit, diese (vermutlich etwas mit Bezug zu korrigieren zum Inhalt des Verzeichnisses ODBM_File)?

Danke

+1

Der eigentliche Fehler ist 'ODBM_File.xs: 128: Fehler: Zu wenig Argumente dbmclose''‘ funktionieren. Code 512 ist irrelevant. – melpomene

+0

Danke. Das Ändern der Funktion dbmclose() scheint das Problem mit dem Ausführen von make gelöst zu haben. – Max

Antwort

1

Dies ist ein known issue auf SUSE Linux ist:

error: too few arguments to function 'dbmclose'

Building ODBM_File on some (Open)SUSE distributions might run into this error, as the header file is broken. There are two ways to deal with this

  1. Disable the use of ODBM_FILE

    Configure ... -Dnoextensions=ODBM_File 
    
  2. Fix the header file, somewhat like this:

    --- a/usr/include/dbm.h 2010-03-24 08:54:59.000000000 +0100 
    +++ b/usr/include/dbm.h 2010-03-24 08:55:15.000000000 +0100 
    @@ -59,4 +59,4 @@ extern datum firstkey __P((void)); 
    
    extern datum nextkey __P((datum key)); 
    
    -extern int  dbmclose __P((DBM *)); 
    +extern int  dbmclose __P((void)); 
    
Verwandte Themen