On Jan 21, 2013, at 8:42 AM, Easior Lars <easior.lars(a)yahoo.com> wrote:
On Jan 20, 2013, at 9:43 PM, Alick Zhao <alick9188(a)gmail.com> wrote:
> On Sun, 20 Jan 2013 20:08:26 +0800, Easior Lars wrote:
>>
>> On Jan 20, 2013, at 3:30 PM, Alick Zhao <alick9188(a)gmail.com> wrote:
>>
>>> On Sun, 20 Jan 2013 13:33:58 +0800, Easior Lars wrote:
>>>> 不明就里啊?
>>>> 搞不清楚状况,
>>>> 32位、64位的装在一起,
>>>> 普通的gcc编译,
>>>> 例如编译个helloworld,
>>>> 到底怎么区分是哪个arch编出来的?
>>>>
>
> 对于这一个特定问题,参考 SO 上的回答,说的比较清楚了,还有例子:
>
http://stackoverflow.com/questions/1272357/how-to-compile-a-32-bit-binary...
这么看来,gcc提供了-m选项支持多arch。只要系统提供了相应的库即可编译、运行。
>
>>>
>>> Linux 实现了这个机制,叫 multi-arch,不妨上网搜一搜。
>>> 对普通用户/开发者来说,只要把相应的库/软件包安装齐全就好了。
>>
>> 兄台能否帮我搜个与此相关的文档?
>> 我搜到的基本与Fedora无关,云里雾里。
>>
>
> 嗯,我也觉得我没有理解它 :(
>
> Fedora 中现在的实现简单讲就是把 32 位库放在 {/,/usr/,/usr/local/}lib
> 下,64 位库放在 {/,/usr/,/usr/local/}lib64 下。这样两种库就可以同时安装
> 在系统上了。这样,在 64 位系统上,32 位应用可以找到依赖的库,正常运行。
> 这也是现在的 FHS 给的意见。
>
> Debian 眼中的 multiarch 应该更强大一些,应该能支持各种架构的库同时安装。
> (更长远的目标时,各种架构的二进制文件都可以同时安装并运行。)
> Debian 把 Fedora 中采用的方法称作 biarch 之类,并没有采用。而是另外提出
> 了实现方案。它的库文件存放在类似 /usr/lib/{x86_64-linux-gnu/,i376-linux-
> gnu/} 的目录中。
这个让我想到了Gentoo里的KEYWORDS,从这个意义上来看,Gentoo与Debian走得更近一些。Gentoo里提供了一个multilib这样一个USE
Flag,不过我从来没有用过,不知道它与multiarch是不是一回事?
我看了一下Gentoo的目录,发现它采用的是Fedora的策略。不过它创建了三个目录/usr/lib、/usr/lib32、/usr/lib64。其中/usr/lib/是一个链接,64位系统中链接到了/usr/lib64。目前,还不知道Gentoo是怎么更改这个链接的?