2017-07-24 6 views
1

Gefolgt viele Tutorials bisher und hatte verschiedene Fehler. Unten ist die komplette Schritt-für-Schritt-Prozedur, die ich folgte und endete Fehler mit OpenSSH-Kompilierung.Fehler beim Kompilieren OpenSSH (Embedded Linux)

Heruntergeladene Zlib und Quer zusammengestellt ($ HOME/Desktop/Zlib/zlib-1.2.5/Ausgabe)

cd /home/armsdk/Desktop/ 
mkdir zlib 
cd Zlib 
wget http://www.zlib.net/fossils/zlib-1.2.5.tar.gz 
tar xzvf zlib-1.2.5.tar.gz 
cd zlib-1.2.5 
mkdir output 
./configure --prefix=/home/armsdk/Desktop/Zlib/zlib-1.2.5/output CC=arm-cortexa9-linux-gnueabi-gcc 
make 
make install 

heruntergeladen OpenSSL und Quer zusammengestellt: ($ HOME/Desktop/OpenSSL/OpenSSL_CC)

mkdir OpenSSL 
cd OpenSSL 
wget http://www.openssl.org/source/openssl-1.0.1g.tar.gz 
tar xzvf openssl-1.0.1g.tar.gz  
cd openssl-1.0.1g/ 
export cross=arm-cortexa9-linux-gnueabi- 
./Configure dist --prefix=$HOME/Desktop/OpenSSL/OpenSSL_CC 
make CC="${cross}gcc" AR="${cross}ar r" RANLIB="${cross}ranlib" 
make install 

Kreuz OpenSSH Zusammengestellt:

./configure --prefix=$HOME/Desktop/OpenSSH/OpenSSH_CC --host=arm --with-libs --with-zlib=$HOME/Desktop/Zlib/zlib-1.2.5/output --with-ssl-dir=$HOME/Desktop/OpenSSL/OpenSSL_CC --disable-etc-default-login CC=arm-cortexa9-linux-gnueabi-gcc AR=arm-cortexa9-linux-gnueabi-ar 
make 

LERNEN CRYPT ERROR:

openbsd-compat//libopenbsd-compat.a(xcrypt.o): In function `xcrypt': 
/home/armsdk/Desktop/OpenSSH/openssh-5.2p1/openbsd-compat/xcrypt.c:78: undefined reference to `crypt' 
collect2: error: ld returned 1 exit status 

Bitte helfen Sie mir zu lösen. Alles was ich brauche ist SFTP-Server für Remote-Debugging mit gdbserver (via Eclipse-)


Kompilieren auf System läuft: Debian Wheezy

Target Board: Ka-Ro TX6S

Zielprozessor: NXP i.MX6S7

Host-Linux-Version: 3.16.0-0.bpo.4-amd64

Ziel Linux Version: 4.4.0-00118-g26d6b51

Cross: gcc-Arm-cortexa9-linux-gnueabi


Update 1:

die folgenden Leitungsfehler Gave Hinzufügen:

-I/home/armsdk/Desktop/OpenSSL/OpenSSL_CC/include 

Fehler

configure: error: unrecognized option: -I/home/armsdk/Desktop/OpenSSL/OpenSSL_CC/include 

dies stattdessen versucht, aber die CRYPT Fehler ist noch vorhanden.

--includedir=/home/armsdk/Desktop/OpenSSL/OpenSSL_CC/include 

Update 2:

Versuchte -lcrypt Flagge wie hier vorgeschlagen: undefined reference to `crypt' Aber das muß nicht jede Änderung Fehler.

make clean 
make -lcrypt 

Update 3: Added 'CFLAGS = -lcrypt' und der Fehler jetzt

./configure --prefix=$HOME/Desktop/OpenSSH/OpenSSH_CC --host=arm --with-libs --with-zlib=$HOME/Desktop/Zlib/zlib-1.2.5/output --with-ssl-dir=$HOME/Desktop/OpenSSL/OpenSSL_CC --disable-etc-default-login CC=arm-cortexa9-linux-gnueabi-gcc AR=arm-cortexa9-linux-gnueabi-ar CFLAGS=-lcrypt 

Fehler

openbsd-compat//libopenbsd-compat.a(xcrypt.o): In function `xcrypt': 
xcrypt.c:(.text+0x2c): undefined reference to `crypt' 
collect2: error: ld returned 1 exit status 
make: *** [sshd] Error 1 
geändert

Update 4: die LDFLAGS und CFLAGS aktualisiert, wie unten:

./configure --prefix=$HOME/Desktop/OpenSSH/OpenSSH_CC --host=arm --with-libs --with-zlib=$HOME/Desktop/Zlib/zlib-1.2.5/output --with-ssl-dir=$HOME/Desktop/OpenSSL/OpenSSL_CC --disable-etc-default-login CC=arm-cortexa9-linux-gnueabi-gcc AR=arm-cortexa9-linux-gnueabi-ar LDFLAGS=-L/home/cross-gcc-4.9.1-2.19-18-armv7a-soft/x86_64-pc-linux-gn‌​‌​u/arm-cortexa9-lin‌​ux‌​-gnueabi/sys-roo‌​t/li‌​b CFLAGS=-lcrypt 

Ausgabe immer noch die gleichen:

openbsd-compat//libopenbsd-compat.a(xcrypt.o): In function `xcrypt': 
xcrypt.c:(.text+0x2c): undefined reference to `crypt' 
collect2: error: ld returned 1 exit status 
make: *** [sshd] Error 1 

Update 5:

ich endlich habe es geschafft, 'MAKE' zu machen, aber nicht 'make install'

./configure --prefix=$HOME/Desktop/OpenSSH/OpenSSH_CC --host=arm --with-libs --with-zlib=$HOME/Desktop/Zlib/zlib-1.2.5/output --with-ssl-dir=$HOME/Desktop/OpenSSL/OpenSSL_CC --disable-etc-default-login CC=arm-cortexa9-linux-gnueabi-gcc AR=arm-cortexa9-linux-gnueabi-ar LDFLAGS='-L/home/cross-gcc-4.9.1-2.19-18-armv7a-soft/x86_64-pc-linux-gn‌​‌​u/arm-cortexa9-lin‌​ux‌​-gnueabi/sys-roo‌​t/li‌​b -lcrypt' 

make  
make install 

Fehler beim 'make install'

(umask 022 ; ./mkinstalldirs /var/empty) 
/usr/bin/install -c -m 0755 -s ssh /home/armsdk/Desktop/OpenSSH/OpenSSH_CC/bin/ssh 
strip: Unable to recognise the format of the input file `/home/armsdk/Desktop/OpenSSH/OpenSSH_CC/bin/ssh' 
/usr/bin/install: strip process terminated 

Update 6: Hoffentlich Finale

So endlich in der Lage, ich bin die Ausgänge zu erzeugen, indem das Flag ‚Hinzufügen - Sperrstreifen '

./configure --prefix=$HOME/Desktop/OpenSSH/OpenSSH_CC --host=arm --disable-strip --with-libs --with-zlib=$HOME/Desktop/Zlib/zlib-1.2.5/output --with-ssl-dir=$HOME/Desktop/OpenSSL/OpenSSL_CC --disable-etc-default-login CC=arm-cortexa9-linux-gnueabi-gcc AR=arm-cortexa9-linux-gnueabi-ar LDFLAGS='-L/home/cross-gcc-4.9.1-2.19-18-armv7a-soft/x86_64-pc-linux-gn‌​‌​u/arm-cortexa9-lin‌​ux‌​-gnueabi/sys-roo‌​t/li‌​b -lcrypt' 
make 
make install 

Ein kleines Problem aber hatte ich diesen Fehler:

mkdir /home/armsdk/Desktop/OpenSSH/OpenSSH_CC/etc 
./ssh-keygen: 1: ./ssh-keygen: Syntax error: word unexpected (expecting ")") 
./ssh-keygen: 1: ./ssh-keygen: Syntax error: word unexpected (expecting ")") 
./ssh-keygen: 1: ./ssh-keygen: Syntax error: word unexpected (expecting ")") 
make: *** [host-key] Error 2 
+0

Mögliches Duplikat von [undefinierter Verweis auf \ 'crypt'] (https://stackoverflow.com/questions/5989444/undefined-reference-to-crypt) – Gaurav

+0

Nach dem Hinzufügen der -lcrypt-Flag zu den Compiler-Flags, Der Fehler stimmt jetzt mit https: // stackoverflow überein.com/questions/5989444/undefined-reference-to-crypt Keine Ahnung, was jetzt zu tun ist, die obige Thread-Lösung war das Hinzufügen der -lcrypt Flag. –

+0

Haben Sie die Libcrypt-Bibliothek für Arm in Ihrem System? Meine ist unter/usr/arm-linux-gnueabi/sowie unter x86-Ordnern –

Antwort

0

Lösung wurde auf

Add the libcrypt path to the compiler, for some reason the compiler couldnt find the right library

LDFLAGS='-L/home/cross-gcc-4.9.1-2.19-18-armv7a-soft/x86_64-pc-linux-gn‌​‌​u/arm-cortexa9-lin‌​ux‌​-gnueabi/sys-roo‌​t/li‌​b -lcrypt' 

Added '--disable-strip' to overcome the STRIP error with the install command

Meine letzte Befehl configure wie folgt aussieht:

./configure --prefix=$HOME/Desktop/OpenSSH/OpenSSH_CC --host=arm --disable-strip --with-libs --with-zlib=$HOME/Desktop/Zlib/zlib-1.2.5/output --with-ssl-dir=$HOME/Desktop/OpenSSL/OpenSSL_CC --disable-etc-default-login CC=arm-cortexa9-linux-gnueabi-gcc AR=arm-cortexa9-linux-gnueabi-ar LDFLAGS='-L/home/cross-gcc-4.9.1-2.19-18-armv7a-soft/x86_64-pc-linux-gn‌​‌​u/arm-cortexa9-lin‌​ux‌​-gnueabi/sys-roo‌​t/li‌​b -lcrypt' 
make 
make install 

Dank @Jakuje, @Gaurav Pathak und @ k_ka z

1

Sie müssen die -lcrypt zu LDFLAGS, hinzuzufügen, weil es ist, was an den Linker übergeben wird (nicht die `CFLAGS).

+0

Das hat funktioniert, aber aus irgendeinem Grund kann ich die ausführbaren Dateien nicht erzeugen. werde das OP updaten und antworten sobald ich in der Lage bin dies zu beenden. (umask 022; ./mkinstalldirs/var/empty) /usr/bin/install -c -m 0755 -s ssh/home/armsdk/Desktop/OpenSSH/OpenSSH_CC/bin/ssh Streifen: Kann nicht erkennen das Format der Eingabedatei '/ home/armsdk/Desktops/OpenSSH/OpenSSH_CC/bin/ssh ' /usr/bin/install: Streifen Prozess abnormal beendet make: *** [Installationsdateien] Fehler 1 –

+0

Sie wahrscheinlich Ich möchte "install" nicht in Ihrem System ausführen. Du installierst Binary so, als ob es versucht die debuginfo oder etwas aus den Binärdateien zu entfernen und weiß nicht wie das geht. – Jakuje

+0

Wie sonst würde ich die ausführbaren Dateien ohne den Befehl install erhalten? Fehle ich hier etwas? –