How to Calling PE Dlls on linux??

Damjan Jovanovic damjan.jov at gmail.com
Tue Aug 21 10:01:09 CDT 2007


On 8/21/07, trulyliu <trulyliu at gmail.com> wrote:
>
>
> 2007/8/21, Damjan Jovanovic <damjan.jov at gmail.com>:
> > On 8/21/07, trulyliu <trulyliu at gmail.com> wrote:
> > > Can I made Arithmetic.dll.so ? And link it against my linux App?
> >
> > A library function runs in the context of the process that invokes it.
> > A library doesn't have its own TEB/memory layout/exception handling
> > that works independently of the process that calls it, no matter how
> > it is compiled. If the wine plugin API is ever made, it will modify
> > the process so it has what the library expects when the library
> > functions are called.
> >
> > Does your Arithmetic.dll.so call any Windows functions? If so, you
> > need wine and you will always need wine, plugin API or no plugin API,
> > whether you compile it into a DLL or .dll.so. But if you only use ANCI
> > C stuff you can compile it into a .so and use it without wine.
> >
> > If you want something that runs seamlessly on every operating system
> > today, IMHO you should consider Java.
> >
> >
>
>
> Yes, Java may be a good choice for crossing platform.
>
> As you said, my Arithmetic.dll does not call any windows function.
> It's pure ANSI C library. What's the step of make .dll.so ??
>
> Use winegcc or gcc ??

Use gcc and make a .so like this:
gcc -c arithmetic.c -fPIC
gcc arithmetic.o -shared -o arithmetic.so

Then put it in /usr/lib and link to it like so:
gcc -c application.c
gcc application.o -o application -larithmetic

> > > --
> > > trulyliu at gmail.com
> > Damjan
> --
> trulyliu at gmail.com
>

Damjan



More information about the wine-devel mailing list