Использовать 32-битную разделяемую библиотеку из 64-битного приложения?

Я создал простую 32-битную разделяемую библиотеку Linux (.so) для своих оболочек рендеринга, но я столкнулся со стеной, когда понял, что могу только использовать их через 32-битные приложения ....................

Вот как выглядит мой код:

RendIFace.h:

<code>//Basic renderer interface
struct Renderer
{
    int type;
    ...other things
};
</code>

GLRend.c:

<code>#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;
}
</code>

SDLRend.c:

<code>#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;
}
</code>

И я компилирую как общие 32-битные библиотеки (.so) и загружаю их через основное приложение ...

Но теперь есть большая проблема. Мои библиотеки все 32-битные и возвращают 32-битные указатели, что означает, что я не могу использовать их через 64-битное приложение без перестройки всей базы кода библиотеки (!!!).

Поэтому я хотел бы спросить более опытных людей: как мне решить эту проблему? Можно ли использовать только одну общую библиотеку для обеих архитектур ???

Ответы на вопрос(2)

Ваш ответ на вопрос