我使用的是 Debian 7.9 (wheezy) x64,我想安装build-essential:i386
.
我已经添加i386
、dpkg --architecture
更新aptitude
并安装java-jdk-1.6:i386
成功。
顺便说一句,无论我如何尝试,build-essential
都会系统地生成依赖项错误:
apt-get install build-essential:i386
Depend : dpkg-dev:i386 (>= 1.13.5)
E: Unable to correct problems, you have held broken packages...
如果有人有想法...谢谢。
另外,我在Debian 邮件列表 - 回复:cross-build-essential
假设我想在 amd64 上安装 i386 的 build-essential。我可以安装 build-essential:i386,用 gcc/g++:i386 替换 gcc/g++:amd64。这难道不会给我交叉编译 i386 所需的一切吗?
在这种情况下,可以,因为您可以在 AMD64 或 Intel 64 CPU 上运行 x86 代码。尽管您确实会用 gcc-4.7:i386 等替换 gcc-4.7:amd64 等,因为这些软件包本身不能共同安装。
这是真的吗?
答案1
好吧,问题是,在 amd64 系统上你并不真正需要 build-essential:i386,根据你想要编译的内容,你可能需要 libpam-dev:i386 或其他 32 位 -dev 库,但你应该使用 64 位工具,甚至可以生成 32 位代码,主要是因为理论上它们应该运行得更快......它们可以访问更多内存......
答案2
是的,确实不能同时拥有build-essential:i386
和安装。build-essential:amd64
这将需要存在某些可执行文件的两个实例(例如gcc
),而这不受多架构规范:
尚未解决的问题
可执行文件的共同安装包
可执行文件的共同安装可能使得在多个体系结构的系统上重用单个磁盘映像而无需修改成为可能。这可以使用可执行文件的体系结构限定路径在多体系结构之上实现,但需要额外的机制(例如内核支持或启动时符号链接)来实现 PATH 处理。