Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/linux/26.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 使用amd64内核(Debian)在i386根上编译amd64二进制文件_C++_Linux_64 Bit_Debian - Fatal编程技术网

C++ 使用amd64内核(Debian)在i386根上编译amd64二进制文件

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

我有一个相当旧的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之外运行它


编辑:安装g++multilib解决了使用-m64选项编译64位的问题。有人能帮我解决问题中的chroot/cross-grade部分吗?

我做这件事已经14年了,但我相信如果你的编译器支持-m64选项,你应该可以通过简单地安装库来完成你想要做的事情。当我做这件事时,我必须自己构建C运行库,我自己构建编译器,自己构建操作系统——但在这个过程中,我成为了世界上第一个在德克萨斯州奥斯汀AMD的SMP x86-64机器上运行Linux的人,当时我在那里工作,从AMD在英国的办公室借来的]那听起来像是一次大冒险,当时有很多工作…:-}我将尝试在amd64 Flavor中安装一些库,看看这将在哪里结束。