红联Linux门户
Linux帮助

关于32位和64位软件的不解

发布时间:2009-10-07 00:24:06来源:红联作者:aoodo
比如说一个软件有32位的,要发布一个64位的是用这个32位的转换还是重新开发?
要是能转换那不是所有的软件都支持32和64位构架,要是不能转换那比如ubuntu的32位和64位是分开来开发的吗,这样岂不是工作量很大?开发周期这么短,除了抓BUG,真正用于开发的时间也不多啊。
文章评论

共有 6 条评论

  1. fhyfufangyu 于 2009-10-08 22:02:54发表:

    还是不是很懂。

  2. slayerzlvc 于 2009-10-08 17:53:15发表:

    me26659408, 3q。 受教了

  3. lw5254 于 2009-10-07 23:03:54发表:

    发展

  4. troonv 于 2009-10-07 09:16:08发表:

    没有直接换这个简单滴

  5. me26659408 于 2009-10-07 09:11:41发表:

    Data Type ILP32 ILP64 LP64 LLP64
    char 8 8 8 8
    short 16 16 16 16
    int 32 64 32 32
    long 32 64 64 32
    long long 64 64 64 64
    pointer 32 64 64 64

    在网上查资料,还看到一个LP32(long point 64)模型,就是int是16位的。
    这个从来没有用到过。

    绝大部分64位的Unix,linux都是使用的LP64模型;
    64位的Windows使用的是LLP64(long long and point 64)模型。



    另外,在网上看到一个资料:
    float 都是4字节;
    double 都是8字节;(C中直接写小数,默认是double型)

    随着 64 位体系结构的普及,针对 64 位系统准备好您的 Linux® 软件已经变得比以前更为重要。在本文中,您将学习如何在进行语句声明、赋值、位移、类型转换、字符串格式化以及更多操作时,防止出现可移植性缺陷。

    Linux 是可以使用 64 位处理器的跨平台操作系统之一,现在 64 位的系统在服务器和桌面端都已经非常常见了。很多开发人员现在都面临着需要将自己的应用程序从 32 位环境移植到 64 位环境中。随着 Intel® Itanium® 和其他 64 位处理器的引入,使软件针对 64 位环境做好准备变得日益重要了。

    与 UNIX® 和其他类 UNIX 操作系统一样,Linux 使用了 LP64 标准,其中指针和长整数都是 64 位的,而普通的整数则依然是 32 位的。尽管有些高级语言并不会受到这种类型大小不同的影响,但是另外一些语言(例如 C 语言)却的确会受到这种影响。

    将应用程序从 32 位系统移植到 64 位系统上的工作可能会非常简单,也可能会非常困难,这取决于这些应用程序是如何编写和维护的。很多琐碎的问题都可能导致产生问题,即使在一个编写得非常好的高度可移植的应用程序中也是如此,因此本文将对这些问题进行归纳总结,并给出解决这些问题的一些方法建议。

  6. 414716676 于 2009-10-07 00:30:32发表:

    所以直接一个32位的多好嘛!