2016-08-06 64 views
0

Ich habe kürzlich versucht, dropbear für 64bit Arch Android Geräte zu kompilieren. Ich habe das Programm kompilieren und ausführen lassen, aber wenn ich mich beim Server anmelde, wird ein Fehler gemacht.Change PATH für LIBS

konfigurierte I & wie so zusammengestellt:

cp ../config.guess ../config.sub . 
./configure --build=x86_64-windows --host=arm-linux-androideabi \ 
--disable-zlib --disable-largefile --disable-loginfunc \ 
--disable-shadow --disable-utmp --disable-utmpx --disable-wtmp \ 
--disable-wtmpx --disable-pututline --disable-pututxline --disable-lastlog \ 
CFLAGS='-Os -W -Wall -fPIE' LDFLAGS='-fPIE -pie' 

make dropbear  

die Fehler:

CANNOT LINK EXECUTABLE: "/system/lib/libc++.so" is 32-bit instead of 64-bit 
page record for 0x7f800b8010 was not found (block_size=32) 

Ich glaube, der Fehler durch dropbear verursacht wird, sh und andere ausführbare Dateien in die Bibliothek in falscher Stelle verbindet.

Das Gerät verfügt über zwei Standorte für libC++

#1 /system/lib/libc++.so 
    #2 /system/lib64/libc++.so 

Wie kann ich sagen/zwingen die kompilierte binäre das lib (n) in

/sytem/lib64 

zu verwenden Wenn ein Beispiel geben Sie bitte zeigen Sie mir genau was hinzugefügt werden muss, damit ich die Informationen richtig anwenden kann. Ich bin mir fast sicher, dass die Lösung einfach ist, aber ich bin kein Programmierer. Ich mache das Zeug, wenn ich verzweifelt bin.

Antwort

0

Stellt sich heraus, es ein harter Link in SRV-chansession.c war die

geändert werden musste

Von:

addnewvar("LD_LIBRARY_PATH", "/system/lib"); 

An:

addnewvar("LD_LIBRARY_PATH", "/system/lib64"); 

Es kann tatsächlich besser sein, Kommentieren Sie diese Zeile und lassen Sie sich von Androiden-Linkern kümmern.

Jetzt habe ich einen funktionierenden dropbear SSH-Server auf meinem 64-Bit-Android-Gerät arbeiten.