【问题标题】:Can 32-bit and 64-bit code be mixed? [duplicate]32位和64位代码可以混用吗? [复制]
【发布时间】:2012-02-10 08:27:54
【问题描述】:

可能重复:
Linking 32-bit library to 64-bit program

程序使用的需要静态链接的库之一是 32 位库。如果用 64 位编译器编译,它会中断,主要是因为变量类型的长度不同(long 通常是两倍长)。提供了库的源代码。 该程序本身适用于 32 位和 64 位。 是否可以将库编译为 32 位并静态链接到 64 位应用程序?

【问题讨论】:

    标签: c 32bit-64bit


    【解决方案1】:

    不,这是不可能的。您不能从 64 位代码调用任何 32 位库。您必须将它们放在不同的地址空间中。

    使用它的一种方法是使用进程间通信(管道、套接字等)。

    【讨论】:

      【解决方案2】:

      基本上,不,您不能静态或动态链接 32 位和 64 位代码,无论如何都不能在 x86 上。

      可以做的是编写一个在单独进程中运行的包装器,并使用 RPC 将库“链接”到您的代码。 Linux 上的nspluginwrapper 为 Flash 做了类似的事情。

      【讨论】:

        猜你喜欢
        • 2018-06-19
        • 2013-04-05
        • 2011-09-11
        • 2013-01-11
        • 2020-09-21
        • 2011-05-22
        • 1970-01-01
        • 2014-07-23
        • 1970-01-01
        相关资源
        最近更新 更多