compilation fails with Win32 API call

jojelino jojelino@gmail.com
Tue Sep 20 17:04:00 GMT 2011


On 2011-09-20 PM 6:12, Andrew Schulman wrote:
> I'm trying to compile a program that calls the win32 function
> SetThreadExecutionState, in kernel32.dll [1].  The link step fails:
>
> $ gcc -c nosleep.c
> $ gcc -o nosleep nosleep.o -lkernel32
> nosleep.o:nosleep.c:(.text+0x1f): undefined reference to
> `_SetThreadExecutionState'
> nosleep.o:nosleep.c:(.text+0x5c): undefined reference to
> `_SetThreadExecutionState'
> collect2: ld returned 1 exit status
>
> According to the FAQ [2], I shouldn't even have to include -lkernel32.
>
> Can someone please tell me what I'm doing wrong?
>
> Thanks,
> Andrew.
>
> [1] http://msdn.microsoft.com/en-us/library/aa373208(VS.85).aspx
here you are.
http://msdn.microsoft.com/en-us/library/aa383745.aspx
> [2]
> http://www.cygwin.com/faq/faq.programming.html#faq.programming.win32-api
>
>
please define WINVER so that you can get definition what you want
(gcc -E -DWINVER=0x500 - <<EOF
#include <windows.h>
EOF
)|grep SetThreadExecution

now you can see SetThreadExecutionState is defined


--
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