Ich habe versucht, die neueste Version von 'tar zu kompilieren ‘ (Version 1.28) aus der Quelle. Die Datei ./configure Das Skript wurde mit einer Fehlermeldung wie „Fehler:Sie sollten configure nicht als Root ausführen beendet “. Wie in der Fehlermeldung vorgeschlagen, habe ich von ‚root aus beendet ‘ Benutzer und führte die Konfigurierung aus Skript als nicht privilegierter Benutzer. Der Fehler ist aufgetreten, aber während ‘make “, wurde der Build mit einer Fehlermeldung wie „Zwergfehler:gefundene Zwergversion ‚4‘, dieser Reader verarbeitet nur Version 2-Informationen beendet ‘. Ich habe nach der Lösung gegoogelt, aber nichts hat funktioniert.
Unten ist die vollständige Fehlermeldung:
# ./configure
Der obige Befehl wurde ohne Fehler ausgeführt. Unten ist die Fehlermeldung während „make“.
# make :::::::::::::::::::: /usr/bin/ld: Dwarf Error: found dwarf version '4', this reader only handles version 2 information. ../gnu/libgnu.a(argp-fmtstream.o): In function `realpath': argp-fmtstream.c:(.text+0x0): multiple definition of `realpath' rmt.o:rmt.c:(.text+0x5d0): first defined here ../gnu/libgnu.a(argp-fmtstream.o): In function `ptsname_r': argp-fmtstream.c:(.text+0x10): multiple definition of `ptsname_r' rmt.o:rmt.c:(.text+0x5e0): first defined here ../gnu/libgnu.a(argp-fmtstream.o): In function `wctomb': argp-fmtstream.c:(.text+0x20): multiple definition of `wctomb' rmt.o:rmt.c:(.text+0x5f0): first defined here ../gnu/libgnu.a(argp-fmtstream.o): In function `mbstowcs': argp-fmtstream.c:(.text+0x30): multiple definition of `mbstowcs' rmt.o:rmt.c:(.text+0x600): first defined here ::::::::::::::::::::::::::::
Können Sie mir helfen, diesen Fehler zu beheben?
Lösung:
Das können Sie dem Compiler über CFLAGS mitteilen um DWARF4 nicht auszusenden info mit ‘-gdwarf-2 -gstrict-dwarf ‘
Stellen Sie CFLAGS wie folgt ein:
# export CFLAGS='-gdwarf-2 -gstrict-dwarf'
Bereinigen Sie den vorherigen Build wie folgt:
# make clean
Führen Sie das ./configure-Skript erneut aus:
# ./ configure
Hersteller:
# make
Installieren:
# sudo make install
$ /usr/local/bin/tar --version tar (GNU tar) 1.28
Jetzt ist das ‚tar‘ erfolgreich installiert.