我在32位arm机器上编译了一个简单的hello-world应用程序。并将所需的32位库复制到aarch64机器上。(ld-2.19.so和libc-2.19.so)
如果我是root(sudo),则运行正常,但普通用户的权限被拒绝。
这是错误 -
ubuntu@ubuntu:~$ ./ld-2.19.so ./hello_world
./hello_world: error while loading shared libraries: ./hello_world: failed to map segment from shared object: Operation not permitted
ubuntu@ubuntu:~$ ./ld-2.19.so --list ./hello_world
./hello_world: error while loading shared libraries: ./hello_world: failed to map segment from shared object: Operation not permitted
这是sudo的行为 -
ubuntu@ubuntu:~$ sudo ./ld-2.19.so ./hello_world
Hello World
ubuntu@ubuntu:~$ sudo ./ld-2.19.so --list ./hello_world
linux-vdso32.so.1 => (0xf75cd000)
libc.so.6 => /lib/arm-linux-gnueabihf/libc.so.6 (0xf74de000)
/lib/ld-linux-armhf.so.3 => ./ld-2.19.so (0xaae03000)
答案 0 :(得分:0)
检查这些库的文件权限。如果你不是root用户,你可能会发现你没有权限读取文件或它们所在的目录。