LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
楼主: faxian

编译gcc指定target为i686,在用其编译的代码能运行在i386上吗?

[复制链接]
发表于 2006-4-12 15:50:46 | 显示全部楼层
是否迅驰要将编译target指定为pentium4m?
回复 支持 反对

使用道具 举报

发表于 2006-4-12 18:38:03 | 显示全部楼层
Post by youbest
amd和Intel应该是指令集兼容的吧,只有那些需要用到amd专有指令的时候才会出现运行问题吧.也许碰巧没用到这些指令,或者是运行期间没运行到这样的指令,所以才会运行正常的.


恩,这就是我想表达的意思,不过 youbest 表达的更清楚。:)。
回复 支持 反对

使用道具 举报

发表于 2006-4-12 18:41:02 | 显示全部楼层
这个明白了,那麽话说回头,我有点谜糊了,到底我们在测试什麽?
回复 支持 反对

使用道具 举报

发表于 2006-4-12 18:50:02 | 显示全部楼层
我是想看看一次真实的出错信息。因为我只知道理论是这样,但是我从来碰到这样的问题,就是说 我想看一次用 -march=k8 编译出来的,在 pentium 机器上运行出错,这样心里更舒服。。虽然也许有点BT。。。。
回复 支持 反对

使用道具 举报

发表于 2006-4-12 18:56:56 | 显示全部楼层
-march 有 k8 吗?是否叫别的?记不清了。。。
回复 支持 反对

使用道具 举报

发表于 2006-4-12 19:08:40 | 显示全部楼层
我的机器就是 k8 系列。。虽然我觉得更应该用 athlon64。

http://gcc.gnu.org/onlinedocs/gc ... -x86_002d64-Options

k8, opteron, athlon64, athlon-fx
    AMD K8 core based CPUs with x86-64 instruction set support. (This supersets MMX, SSE, SSE2, 3dNOW!, enhanced 3dNOW! and 64-bit instruction set extensions.)
回复 支持 反对

使用道具 举报

发表于 2006-4-12 19:20:18 | 显示全部楼层
刚想了一下,又想昏了:ask

为什麽 static linked 的不行,shared 的却可以?

是 glibc 的差异?应该不会呀,glibc 都说了不要在编译时加入 CFLAGS 的!:confused:
回复 支持 反对

使用道具 举报

发表于 2006-4-12 19:33:42 | 显示全部楼层
Post by d00m3d
刚想了一下,又想昏了:ask

为什麽 static linked 的不行,shared 的却可以?

是 glibc 的差异?应该不会呀,glibc 都说了不要在编译时加入 CFLAGS 的!:confused:


我想这个应该比较容易解释,也许就是在静态编译的时候编译进去的库(不一定就是glibc引起的,也可能是其它使用到的库)里面包含了特定机器的指令,所以执行出了问题,而用shared方式则调用是本机上的库,自然就可以运行了.
回复 支持 反对

使用道具 举报

发表于 2006-4-12 19:35:30 | 显示全部楼层
我在 vmware 里可以运行静态编译的那2个文件。相信是 zip 没有用到 k8 的指令。也许是你的glibc 不够新,有的指令改动了。

vmware系统配置: glibc-2.4 / gcc-4.1.0 / kernel-header-2.6.16 / kernel 2.6.16
回复 支持 反对

使用道具 举报

发表于 2006-4-12 19:53:09 | 显示全部楼层
Post by youbest
我想这个应该比较容易解释,也许就是在静态编译的时候编译进去的库(不一定就是glibc引起的,也可能是其它使用到的库)里面包含了特定机器的指令,所以执行出了问题,而用shared方式则调用是本机上的库,自然就可以运行了.
可是 zip 只有 glibc  是唯一的依赖啊
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表