I have created a simple linux 32bit shared library(.so) for my rendering wrappers but i've hit a wall when i figured that i can only
use them through 32bit applications....................
This is how my code looks like:
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;
}
And i compile both as shared 32bit libraries(.so) and load them through the main application...
But now there is a big problem.My libraries are all 32bit and return 32bit pointers which means that i can't use them through
an 64bit application without rebuilding all the library code base(!!!).
So i would like to ask more experienced people : How do i handle this issue ? Is it possible to use just a single shared library for both architectures ???
See Question&Answers more detail:
os 与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…