i686 ld couldn't resolve wglCreateContext from libopengl32.a on x86_64 system

Yaakov Selkowitz yselkowitz@cygwin.com
Fri Mar 3 01:19:00 GMT 2017


On 2017-03-02 18:14, sorryforaskingthis.bk.ru via cygwin wrote:
>> On 2017-03-02 16:54, Yaakov Selkowitz <yselkowitz@cygwin.com> wrote:
>>
>> This looks like a snippet of an autoconf AC_CHECK_LIB (or
>> AC_CHECK_FUNCTION) test. Such tests don't work with 32-bit Win32 APIs
>> -- on either Cygwin or MinGW -- because they don't take stdcall into
>> account. You'll need to modify the test to work around that.
>>
>> Also, if you're using Cygwin, do you *really* want to be using Win32
>> OpenGL and not X11?
>>
> Yes, you're right. It's autoconf test and it perfectly passed at 64-bit MinGW
> and 64-bit Cygwin, but not on 32-bit Cygwin.

It would fail on 32-bit MinGW too.

> And I don't understand why you're say that it is related to stdcall, while
> wglCreateContext exposed directly without any @0 @4 etc.

No, it's not, check the implib yourself.  You have to use a proper 
declaration to link stdcall functions, and the autoconf tests don't do 
that.  You need to change the test to avoid this; exactly how depends on 
the intent of the test.

> Yes, I need to use Win32.
          ^^^^
> I want to port application that heavily POSIX-dependent, but also want to save
                                                                     ^^^^
> performance as much as possible.

Big difference.

> I think if w32api-runtime package is provided it supposed to work.

Maybe, maybe not.  Mixing *NIX and Win32 APIs isn't so simple.

-- 
Yaakov

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



More information about the Cygwin mailing list