This is the mail archive of the cygwin mailing list for the Cygwin project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: Using VC-compiled Mesa binaries under Cygwin


On 1/17/06, Eric Lilja wrote:
> * * wrote:
> > Are the import libraries using the cygwin filename conventions?
> >
> Well, no. Building Mesa with glut creates the following files (which I have
> copied to the directory of the simple test program I trying to build with
> compiler supplied with Cygwin using the Makefile in first post):
> $ ls *.DLL *.lib
> GLU32.DLL*  GLU32.lib*  GLUT32.DLL*  GLUT32.lib*  OPENGL32.DLL*
> OPENGL32.lib*
> > example,
> >
> > -lm links against
> > libm.a
> >
> > -lpcre links against
> > libpcre.a
> > libpcre.dll.a
> > libpcre.la
> >
> > GCC just isn't going to find a file named glut32.lib using the
> > -lglut32 switch like microsoft link.exe does.  It might work if you
> > list it like all the object files.
>
> I tried renaming GLUT32.DLL to libglut32.dll.a, but the linker still cannot

But libglut32.dll.a should be the import library which Visual C++
named GLUT32.LIB

> find the definitions of any glut functions. I tried adding GLUT32.lib with
> the objects in the linking stage, but still no go.

This I would have hoped would work.  The GLUT32.DLL is certainly
usable from cygwin, as all system DLLs are (although non-C DLLs might
not be in some cases).

> However, doing a nm GLUT32.lib | grep glutPostRedisplay (the first undefined
> reference), shows:
> $ nm GLUT32.lib | grep _glutPostRedisplay
> 00000000 I __imp__glutPostRedisplay@0
> 00000000 T _glutPostRedisplay@0

This is definitely the MSVC name mangling convention.... but I think
that gcc doesn't append the number of bytes on the end.  What calling
convention did you compile with?  I think MSVC adds the argument size
to stdcall but not cdecl, or else the other way around.

Actually, what was the error in the previous step?  Undefined symbols
I presume?  Please give a couple examples so I can see the mangled
names.  You may want to try recompiling the DLL with a different
calling convention specified in your MSVC project.  Functions in
system DLLs are stdcall.  I note that the /usr/include/w32api/*.h have
all declarations include __declspec(dllimport) __stdcall just like
MSVC... so your header files may need this too.

>
> Any ideas? And one more thing: Please don't quote raw email addresses when
> replying to this list. Thanks.

Oops.  Very sorry.

Other idea is to extract a gcc-format import library using dlltool... 
this looks helpful:
http://www.emmestech.com/software/cygwin/pexports-0.43/moron1.html

>
> >
> > On 1/16/06, Eric Lilja wrote:
> >> I just compiled the latest version of Mesa (6.4.1) using Microsoft
> >> Visual Studio, because I couldn't compile it with MinGW or Cygwin.
> >> After editing a macro, I was successful in compiling Mesa + glut in
> >> Visual Studio. Now, can I use the binaries (libs and DLLs) with
> >> Cygwin? I can't seem to get my test program to link...I put the
> >> mesa-binaries in the application path and I am using the following
> >> Makefile:
> >> CC = gcc
> >> CFLAGS = -Wall -W -ansi -pedantic -g -O0 -c -o
> >> LDFLAGS = -L. -lglut32 -lglu32 -lopengl32 -o $(EXEC)
> >> EXEC = proj.exe
> >> OBJECTS = simple1_9.o
> >>
> >> all: $(OBJECTS)
> >>  $(CC) $^ $(LDFLAGS)
> >>
> >> %.o: %.c
> >>  $(CC) $(CFLAGS) $@ $<
> >>
> >> clean:
> >>  rm -f $(OBJECTS) $(EXEC) *~ *.stackdump
> >>
> >> But I'm getting link errors for any glut-functions....any ideas?
> >>
> >>
> >>
> >>
> >> --
> >> Unsubscribe info:      http://cygwin.com/ml/#unsubscribe-simple
> >> Problem reports:       http://cygwin.com/problems.html
> >> Documentation:         http://cygwin.com/docs.html
> >> FAQ:                   http://cygwin.com/faq/
>
>
>
>
> --
> Unsubscribe info:      http://cygwin.com/ml/#unsubscribe-simple
> Problem reports:       http://cygwin.com/problems.html
> Documentation:         http://cygwin.com/docs.html
> FAQ:                   http://cygwin.com/faq/
>
>

--
Unsubscribe info:      http://cygwin.com/ml/#unsubscribe-simple
Problem reports:       http://cygwin.com/problems.html
Documentation:         http://cygwin.com/docs.html
FAQ:                   http://cygwin.com/faq/


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]