32 位和 64 位代码可以混合使用吗?

发布于 2024-12-27 03:44:49 字数 349 浏览 0 评论 0原文

可能的重复:
将 32 位库链接到 64 位程序

其中之一程序使用的库(需要静态链接)是 32 位库。如果使用 64 位编译器编译,它会崩溃,主要是因为变量类型的长度不同(大多数情况下,long 是两倍长)。提供了该库的源代码。 该程序本身可以在 32 位和 64 位上运行。 是否可以将库编译为 32 位并将其静态链接到 64 位应用程序?

Possible Duplicate:
Linking 32-bit library to 64-bit program

One of the libraries a program uses, which needs to be statically linked, is a 32-bit one. If compiled with a 64-bit compiler, it breaks, mostly because the variable types are of different length (long being twice as long, mostly). Source code of the library is provided.
The program itself works at 32 and 64 bit.
Is it possible to compile the library as 32-bit and statically link it to a 64-bit application?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

裸钻 2025-01-03 03:44:49

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

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

Basically, no, you can't link, statically or dynamically, 32bit and 64bit code, not on x86 anyway.

What you can do is write a wrapper that runs in a separate process and uses RPC to "link" the library to your code. nspluginwrapper on Linux does something like that for Flash.

想念有你 2025-01-03 03:44:49

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

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

No its not possible. You cant call any 32 bit lib from 64 bit code. You have to put them in different address space.

One way to utilize it is to use interprocess communication (pipe, socket etc).

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文