我在x86_64系统上运行Linux。我在o1 = width * offset1
o2 = width * offset2
line1Ys = findYs(path1Node, o1, o2)
line2Ys = findYs(path2Node, o1, o2)
areaLine1.attr("x1", width*offset1)
.attr("x2", width*offset1)
.attr("y1", line1Ys[0])
.attr("y2", line2Ys[0])
areaLine2.attr("x1", width*offset2)
.attr("x2", width*offset2)
.attr("y1", line1Ys[1])
.attr("y2", line2Ys[1])
function findYs(p, x1, x2) {
const accuracy = 1 //increase for quicker, but less accurate lines
let ys = [];
let i = x1;
const l = p.getTotalLength()
for (i; i < l; i+=accuracy) {
let pos = p.getPointAtLength(i)
if (pos.x > x1) {
ys.push(pos.y)
break
}
}
for (i; i < l; i+=accuracy) {
let pos = p.getPointAtLength(i)
if (pos.x > x2) {
ys.push(pos.y)
break
}
}
return ys;
}
上安装了Raspbian图像。如果我想在/mnt
下运行二进制文件,我可以/mnt
进入Rasbpian环境,系统将使用chroot
来运行armhf二进制文件。
我可以在qemu-arm-static
环境之外运行单个二进制文件,执行以下操作:
chroot
但有没有办法覆盖动态链接器路径(在本例中为qemu-arm -E LD_LIBRARY_PATH=/mnt/lib/arm-linux-gnueabihf/ \
/mnt/lib/ld-linux-armhf.so.3 /mnt/bin/echo hello world
),以便第一个进程可以启动其他arm二进制文件?例如,启动shell可以正常工作:
/lib/ld-linux-armhf.so.3
但是尝试生成另一个二进制文件失败了:
outside$ qemu-arm -E LD_LIBRARY_PATH=/mnt/lib/arm-linux-gnueabihf/ \
-E PATH=/mnt/bin:/mnt/usr/bin \
/mnt/lib/ld-linux-armhf.so.3 /mnt/bin/sh
$ echo hello world
hello world
我是否可以说服内核在$ ls
/lib/ld-linux-armhf.so.3: No such file or directory
中找到动态链接器(用于arm二进制文件)而无需在chroot环境中运行?