C++ 使用amd64内核(Debian)在i386根上编译amd64二进制文件
我有一个相当旧的Debian测试系统,它的所有软件包都安装为i386。通常我运行的是PAE内核linux-image-3.16.0-4-686-PAE:i386 我试图编译一个需要超过4 GB内存的简单C++程序。我已经安装了linux-image-3.16.0-4-amd64:amd64内核,因为我认为在PAE机器上不可能获得超过3GB的内存 不幸的是,整个工具链/库仍然是i386。我想我需要一种特殊口味的GCC multilib?以及一些库的amd64版本 我找到了关于如何在64位rootfs系统上编译32位内容的教程,但不是相反。我不想为了这次测试而将整个系统评分为amd64,因此: 有没有一种方法可以在这个设置上安全地编译和运行64位代码,而只需对系统进行必要的少量更改?理想情况下,在将来的某个时候,可以从该设置跨坡。或者,是否可以从Debian Live CD创建一个64位的chroot环境,将chroot放入其中,编译代码并从那里运行它?或者静态编译并在chroot之外运行它C++ 使用amd64内核(Debian)在i386根上编译amd64二进制文件,c++,linux,64-bit,debian,C++,Linux,64 Bit,Debian,我有一个相当旧的Debian测试系统,它的所有软件包都安装为i386。通常我运行的是PAE内核linux-image-3.16.0-4-686-PAE:i386 我试图编译一个需要超过4 GB内存的简单C++程序。我已经安装了linux-image-3.16.0-4-amd64:amd64内核,因为我认为在PAE机器上不可能获得超过3GB的内存 不幸的是,整个工具链/库仍然是i386。我想我需要一种特殊口味的GCC multilib?以及一些库的amd64版本 我找到了关于如何在64位rootf
编辑:安装g++multilib解决了使用-m64选项编译64位的问题。有人能帮我解决问题中的chroot/cross-grade部分吗?我做这件事已经14年了,但我相信如果你的编译器支持-m64选项,你应该可以通过简单地安装库来完成你想要做的事情。当我做这件事时,我必须自己构建C运行库,我自己构建编译器,自己构建操作系统——但在这个过程中,我成为了世界上第一个在德克萨斯州奥斯汀AMD的SMP x86-64机器上运行Linux的人,当时我在那里工作,从AMD在英国的办公室借来的]那听起来像是一次大冒险,当时有很多工作…:-}我将尝试在amd64 Flavor中安装一些库,看看这将在哪里结束。