Impossibile installare il modulo con CPAN Mac - directory non trovata

0

Ho riscontrato un problema durante il tentativo di installare moduli con CPAN (e con make manuale). Ho installato perl tramite Homebrew e quando eseguo cpan install MODULE_NAME ottengo questo errore:

ld: warning: directory not found for option '-
L/System/Library/Perl/5.26.1/darwin-thread-multi-2level/CORE'
ld: library not found for -lperl
clang: error: linker command failed with exit code 1 (use -v to see 
invocation)
make[1]: *** [../blib/arch/auto/Verilog/Parser/Parser.bundle] Error 1
make: *** [subdirs] Error 2
WSNYDER/Verilog-Perl-3.448.tar.gz
/usr/bin/make -- NOT OK

So che questo problema è dovuto alla mia versione Perl poiché la mia versione Perl nella seguente posizione è la 5.18 e non la 5.26 (vedi: /System/Library/Perl/5.26.1/darwin-thread-multi-2level/CORE ).

Qualsiasi aiuto sarebbe molto apprezzato.

Modifica

Sono forniti i seguenti output:

$ type cpan
cpan is /usr/local/bin/cpan
$ type make
make is /usr/bin/make
$ where brew
/usr/local/bin/brew
$ echo $PATH
/Users/alexandermann/.nvm/versions/node/v8.9.0/bin:/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin:/Library/Frameworks/Python.framework/Versions/3.6/bin:/Users/alexandermann/Library/Python/3.6/bin:/Users/alexandermann/Library/Android/sdk/tools:/Users/alexandermann/Library/Android/sdk/platform-tools

La prima riga in /usr/local/bin/perl è: #!/usr/local/opt/perl/bin/perl

Modifica 2:

Quindi ho trovato un altro indizio per risolvere questo ... Ho provato a installare manualmente un pacchetto Perl (il pacchetto è Verilog-Perl ). Seguendo il setup tipico per ottenere un Makefile devo eseguire perl Makefile.PL nella directory root del pacchetto. Guardando in Makefile.PL trovo:

    $out .= "DLEXT = dylib\n";
    if ($^V eq '5.16.2') {
        $out .= sprintf("LDDLFLAGS = -dynamiclib -lstdc++ -L/System/Library/Perl/5.16.2/%s/CORE -lperl -L/usr/local/lib\n",$Config{archname});
    } elsif ($^V eq '5.12.4') {
        $out .= sprintf("LDDLFLAGS = -dynamiclib -lstdc++ -L/System/Library/Perl/5.12/%s/CORE -lperl -L/usr/local/lib\n",$Config{archname});
    } elsif ($^V eq '5.18.2') {
        $out .= sprintf("LDDLFLAGS = -dynamiclib -lstdc++ -L/System/Library/Perl/5.18/%s/CORE -lperl -L/usr/local/lib\n",$Config{archname});
    } else {
        $out .= sprintf("LDDLFLAGS = -dynamiclib -lstdc++ -L/System/Library/Perl/%vd/%s/CORE -lperl -lgcc_eh -L/usr/local/lib\n",$^V,$Config{archname});
    }

Puoi vedere che -L/System/Library/Perl... è hardcoded in Makefile.PL . La mia versione perl Mac è 5.18 ma poiché la mia versione Homebrew Perl è 5.26 , sta cercando -L/System/Library/Perl/5.26/ quando in realtà questo risiede nella mia cantina di Homebrew. A questo punto, non sono sicuro che ci sia una soluzione conveniente ...

    
posta Alex Mann 22.02.2018 - 19:58
fonte

0 risposte

Leggi altre domande sui tag