我有一个Solaris sparc机器,当我构建我的程序时,它会生成32位代码,应该是64位。如何检查原因?
$ uname -a
SunOS sol 5.10 Generic_118833-33 sun4u sparc SUNW,Sun-Fire-V240
$ / usr / sfw / bin / gcc --version
gcc(GCC)3.4.3(csl-sol210-3_4-branch + sol_rpath)
版权所有(C)2004 Free Software Foundation,Inc。
这是免费软件;查看复制条件的来源。没有
保证;甚至不适用于适销性或特定用途的适用性。
$ / usr / sfw / bin / gcc test.c
$ file a.out
a.out:ELF 32位MSB可执行文件SPARC版本1,动态链接,未剥离,没有可用的调试信息
$
答案 0 :(得分:1)
您应该能够使用-m64
选项强制进行64位构建。
如果失败,您可以从SunFreeware.com下载并安装具有针对Solaris 10的64位SPARC支持的预构建GCC软件包(下载,gunzip
,安装pkgadd -d gcc-...-sparc-local
)从/usr/local/bin/gcc
开始。
答案 1 :(得分:1)
OSNews - SPARC Optimizations With GCC
创建64位代码需要使用
-m64
标志(默认情况下隐含了32位代码-m32
)。
(是的,这与x86_64的GCC不同,默认为-m64
,除非被-m32
覆盖。)