Subject: Re: [PATCH 02/14] msvc: git-daemon.exe: Fix linker "unresolved externals" error

From: Ramsay Jones <[email-masked]>
Date: Wed, 08 Dec 2010 00:11:32 +0000

Erik Faye-Lund wrote:
> On Sat, Dec 4, 2010 at 7:55 PM, Ramsay Jones <[email-masked]> wrote:
>> The msvc linker complains about external symbols referenced by
>> the new poll() emulation code. In particular, it complains about
>> the DispatchMessage(), PeekMessage(), TranslateMessage() and
>> MsgWaitForMultipleObjects() functions.
>>
>> In order to satisfy the external references, we link against the
>> user32.lib library.
>>
>> Signed-off-by: Ramsay Jones <[email-masked]>
>> ---
>>  Makefile |    2 +-
>>  1 files changed, 1 insertions(+), 1 deletions(-)
>>
>> diff --git a/Makefile b/Makefile
>> index 1d42413..bda9fa6 100644
>> --- a/Makefile
>> +++ b/Makefile
>> @@ -1087,7 +1087,7 @@ ifeq ($(uname_S),Windows)
>>        COMPAT_OBJS = compat/msvc.o compat/fnmatch/fnmatch.o compat/winansi.o compat/win32/pthread.o compat/win32/syslog.o compat/win32/sys/poll.o
>>        COMPAT_CFLAGS = -D__USE_MINGW_ACCESS -DNOGDI -DHAVE_STRING_H -DHAVE_ALLOCA_H -Icompat -Icompat/fnmatch -Icompat/regex -Icompat/fnmatch -Icompat/win32 -DSTRIP_EXTENSION=\".exe\"
>>        BASIC_LDFLAGS = -IGNORE:4217 -IGNORE:4049 -NOLOGO -SUBSYSTEM:CONSOLE -NODEFAULTLIB:MSVCRT.lib
>> -       EXTLIBS = advapi32.lib shell32.lib wininet.lib ws2_32.lib
>> +       EXTLIBS = user32.lib advapi32.lib shell32.lib wininet.lib ws2_32.lib
>>        PTHREAD_LIBS =
>>        lib =
>>  ifndef DEBUG
> 
> Looks sane. But it's a bit odd - it currently builds fine without this
> patch from the IDE, but not from the makefile. Is the linker-libs
> different between these?

Er... dunno! ;-) I don't use the IDE (except to read the msdn docs), I'm
*much* more productive in vim (yeah, I'm a luddite!).

So, how did you create your project file? What does it say?
ie. you tell me! :-P

ATB,
Ramsay Jones