c-更改LIBS的路径



我最近一直在尝试为64位arch android设备编译dropbear。我得到了编译和运行的程序,但当我登录到服务器时,它会以一个错误启动我。

我配置了&像这样编译:

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    

错误:

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

我相信这个错误是由dropbear将sh和其他可执行文件链接到错误位置的库引起的。

该设备有两个用于libc++的位置

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

如何告诉/强制已编译的二进制文件使用中的lib

/sytem/lib64

如果举一个例子,请告诉我需要添加什么,这样我就可以正确地应用信息。我几乎可以肯定修复很简单,但我不是程序员。我在绝望的时候做这些事。

原来srv chansession.c中有一个硬链接需要修改

发件人:

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

收件人:

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

实际上,也许最好把这句话说出来,让机器人链接者来处理它

现在我已经在我的64位安卓设备上运行了一个可以工作的dropbear ssh服务器。

相关内容

  • 没有找到相关文章

最新更新