我需要交叉编译一些代码,这些代码将LD_PRELOAD
在为Debian Squeeze时代armel
构建的/usr/lib
Linux应用程序下面(进行一些更改)。
我有一个合适的rootfs,已经将其复制到armel环境中并成功在qemu-system-arm
中运行。我需要弄弄的程序在这种环境下也可以正常工作。 (qemu-arm
可悲的是段错误。)
但是,众所周知,GCC是仿真的宿敌-甚至是JITted仿真:)-所以我试图弄清楚如何设置交叉编译。我以前从未做过,也不知道从哪里开始。
我意识到我需要一个特殊版本的GCC,但是...我将需要Armel库进行链接-对吗?我怀疑我的chroot会派上用场,但我不确定到底该怎么做。
我使用的是Arch,但设置VM进行编译没有任何问题, 尤其 ,如果那里有一个Linux发行版已经预先构建了跨版本,可用的编译器。
我知道emDebian项目是处理Debian Squeeze时代交叉编译的实际方法。显然some kind of compromise happened to the emdebian repo servers就在Emdebian周围被取代并被卷起,因此需要进行的工作来核实一切都没有完成。
Jessie版本使Debian转向了多体系结构方法(不确定这到底是什么,仍在学习中),从而消除了对emdebian之类的需求。
但是Jessie并不挤-我不确定这种差异的后果-例如,编译器版本不同。这是我坚持的要点。
(我最近需要使用GCC 3.3来构建QEMU的副本,该副本对'N800'设备具有实际的支持。使用更新的GCC会产生一个有效的QEMU二进制文件,该二进制文件只是挂起了。因此,我对编译器版本感到关注与众不同,只想从那段时期开始“行之有效”。我不知道我可以在不冒任何风险的情况下快速轻松地玩什么。)