我为我的渲染包装器创建了一个简单的 linux 32 位共享库(.so),但是当我发现我只能通过 32 位应用程序使用它们时,我碰壁了...... ……
这就是我的代码的样子:
RendIFace.h:
//Basic renderer interface
struct Renderer
{
int type;
...other things
};
GLRend.c:
#include "RendIFace.h"
struct Renderer* GLRendererCreate(int width,int height,int bytesPerPixel)
{
struct Renderer* rend = (struct Renderer*)malloc(sizeof(Renderer));
rend->type = GLR;
..other things
return rend;
}
SDLRend.c:
#include "RendIFace.h"
struct Renderer* SDLRendererCreate(int width,int height,int bytesPerPixel)
{
struct Renderer* rend = (struct Renderer*)malloc(sizeof(Renderer));
rend->type = SDLR;
..other things
return rend;
}
我将它们编译为共享的 32 位库(.so)并通过主应用程序加载它们......
但是现在有一个大问题。我的库都是 32 位的,并返回 32 位指针,这意味着我不能通过 64 位应用程序使用它们而不重建所有库代码库(!!!)。
所以我想问问有经验的人:我如何处理这个问题?两种架构都可以只使用一个共享库吗???