我有一个64位系统,但gcc是32位的,当我执行以下操作时:
>./gcc -c foobar.c
它生成了一个名为foobar.o
的64位对象文件。好的,但是它怎么知道要这样做呢?基于什么环境设置,它知道要生成64位目标文件呢?这个在哪里有记录?
仔细想一想,它这样做很奇怪,不是吗?但是file
实用程序清楚地表明,gcc是32位的,而foobar.o是64位的。(我把所有东西都移到了同一个目录下,这样就不会混淆)
我还检查了它读取的3个动态链接库:libc、libm和libz,它们也都是32位的。
澄清一下,我不想知道如何让它变成32位。我想知道它现在正在看什么,以致于会生成64位的目标文件。这是我的问题,不是如何强制它反过来。
file
工具),实际上,我自己把那个gcc
二进制文件从一个 32 位设置中移动了(不要问为什么)。 - Mark Galeck-v
编译是否会给出任何提示? - Marc Glisse