LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
查看: 621|回复: 4

能否使用在其他架构稍有差异的机器上编译的软件包?

[复制链接]
发表于 2009-4-21 09:08:15 | 显示全部楼层 |阅读模式
我有个amd的笔记本,想使用32位的genoo,但是不想在上面编译太多的东西,
还有一些intel 赛扬的32位centos pc, 笔记本和这些pc的硬件差别很大,

但是请问能不能在pc上安装一个gentoo,然后chroot来为我的笔记本编译软件呢?
只要make.conf和/etc/portage/* 一样就可以吧 ?:help
(一些特殊的软件貌似还是要在本机编译的,比如nv)

如果可以的话有什么需要注意的呢?
而且像赛扬的机器本身cpu上可能就没有一些指令,
那么在make.conf里指定了特殊的指令会不会有问题呢?
发表于 2009-4-21 09:31:52 | 显示全部楼层
distcc
回复 支持 反对

使用道具 举报

 楼主| 发表于 2009-4-21 10:05:02 | 显示全部楼层
不是局域网,而且网速不怎么好,下载压缩文件包还可以接受
回复 支持 反对

使用道具 举报

发表于 2009-4-21 11:32:49 | 显示全部楼层
不知道这个对你有没有用

http://dev.gentoo.org/~vapier/CROSS-COMPILE-HOWTO
回复 支持 反对

使用道具 举报

发表于 2009-4-21 12:56:33 | 显示全部楼层
用“cat /proc/cpuinfo”可以知道你的CPU支持的指令集。如果编译的软件含有CPU不支持的指令的话,有可能会出错。有以下两种方法避免这个问题:


  • 找出两个CPU的指令集的交集,然后在CFLAGS里手动指定指令集,像这样:
    1. CFLAGS="-mmx -sse -sse2 -O2 -pipe"
    复制代码

    不要使用“-march=”选项,这样就规避了那些可能的错误。

  • 在CFLAGS里同时指定“-march=”和“-mtune=”选项,如:
    1. CFLAGS="-march=athlon-xp -mtune=pentium3 -O2 -pipe"
    复制代码

    这样编译出来的程序就能同时支持两种CPU。


-----------------------------------
gcc对于指令集和CPU的信息:[color="Blue"]i386 and x86-64 Options - Using the GNU Compiler Collection (GCC)
回复 支持 反对

使用道具 举报

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

本版积分规则

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