3
我有一个64位系统,但GCC是32位的,当我做什么告诉32位GCC在64位系统上,使64位二进制
>./gcc -c foobar.c
它使foobar.o
这是64位。好的,但它是如何知道这么做的?基于它知道什么样的环境设置来生成64位对象,以及在哪里记录?
想想看,它真的很奇怪,不是吗?但file
实用程序明确指出,gcc是32位,foobar.o是64位。 (我把所有的东西都移到了相同的目录下,所以不会混淆)。
我也检查了3个动态链接库,它读取的内容如下:libc,libm和libz,它们也都是32位。
澄清,我不想知道,如何使它做32位。我想知道,什么它看着现在,它使它做64.这是我的问题,而不是如何强制它反过来。
你完全确定gcc二进制文件是32位可执行文件吗? – nos
@nos是的,我检查了(用'file'工具),实际上,我从32位设置中移除了'gcc'二进制文件(不要问为什么)。 –
你用-m64试过了吗? – perencia