The Windows (MSVC) version is broken. You can still build
libpoker.lib and use it for some things but there are problems with
some of the files.
As noted in the first message libpoker.dll won't build because the
linker can't find random(), which isn't an ANSI standard function.
Likewise five_card_hands.exe won't build because of the missing
getopt.
I'm going to fix some of these things because I'd like to use the
code with Windows, but I'm guessing that everyone else uses xNIX.
--- In pokersource@yahoogroups.com, "Arindam Mitra"
<arindam.mitra@w...> wrote:
> Hi Lee,
>
> I have used the poker-eval-src-121 myself in windows. The output
you had
> when running "nmake" from DOS is perfectly fine. This has already
> created the libpoker.lib in the "lib" folder of poker-eval-src-121
> package. Just go ahead and use the .lib in your project. It should
work
> .
>
> Best Wishes,
>
> Arindam.
>
> -----Original Message-----
> From: Lee [mailto:leeblmr@h...]
> Sent: Saturday, November 01, 2003 11:58 AM
> To: pokersource@yahoogroups.com
> Subject: [pokersource] Compiling poker-eval-src-121 with VC++
>
>
> Hi,
>
> I'm having some trouble compiling libpoker.lib, on Windows, using
the
> instructions in the README as distributed with poker-eval-src-121.
> Apologies if this is a common problem, but I've struggled to find a
> solution online anywhere, and my C++ knowledge just isn't quite up
to
> the
> job...
>
> I'll include the full output from the "nmake /f MakeFile.dos" at
the end
> of this message, but the bit where is stumbles is:
>
> rem libpoker.lib
> LINK /DLL /OUT:libpoker.dll t_nbits.obj t_topbit.obj
> t_topcard.obj
> t_top fivecards.obj t_topfivebits.obj t_toptwobits.obj
t_cardmasks.obj
> t_maskrank.obj t_straight.obj t_nbitsandstr.obj t_evx_pairval.obj
> t_evx_strval.obj t_evx_tripsv al.obj t_evx_flushcards.obj
> t_astudcardmasks.obj t_jokercardmasks.obj t_jokerstr aight.obj
> t_botfivecards.obj t_botcard.obj t_botfivecardsj.obj deck.obj
deck_std
> .obj rules_std.obj rules_joker.obj evx.obj deck_astud.obj
> rules_astud.obj
> deck_j oker.obj lowball.obj md5c.obj enumerate.obj combinations.obj
> Microsoft (R) Incremental Linker Version 6.00.8168 Copyright (C)
> Microsoft
> Corp 1992-1998. All rights reserved.
>
> enumerate.obj : error LNK2001: unresolved external symbol _random
> libpoker.dll : fatal error LNK1120: 1 unresolved externals
> NMAKE : fatal error U1077: 'LINK' : return code '0x460'
> Stop.
>
>
>
> I'm guessing this is down to it being unable to find a particular
> library,
> but I don't really know what. I believe my environment variables
are set
> up correctly, as follows:
>
>
> Path=C:\WINNT\system32;C:\WINNT;C:\WINNT\System32\Wbem;C:\Program
> Files\NMapWin\bin;C:\Program Files\Microsoft Visual Studio\Common\
> Tools\WinNT;C:\Program Files\Microsoft Visual Studio\Common\MSDev98
\
> Bin;C:\Program Files\Microsoft Visual
Studio\Common\Tools;e:\Microsoft
> Visual Studio\VC98\bin
>
> lib=e:\Microsoft Visual Studio\VC98\mfc\lib;e:\Microsoft Visual
> Studio\VC98\lib
>
>
> I think it might be down to the linker looking for POSIX libraries
(but
> I really am just guessing) that don't exist in my version of
Visual
> C++ (v6), since I get the following error when I try to namke the
> examples directory (Note the getopt.h reference):
>
> cl -O1 -nologo -DNDEBUG -MD -DMSDOS -I../include -c
> -Fofive_card_hands.o
> bj five_card_hands.c
> five_card_hands.c
> five_card_hands.c(22) : fatal error C1083: Cannot open include
file:
> 'getopt.h': No such file or directory
> NMAKE : fatal error U1077: 'cl' : return code '0x2'
> Stop.
>
>
> I can compile fine on Linux, and using cygwin, but I'd really like
to
> use
> this in some VC++ code I'm writing. I've tried it using the same
> version of Visual C++ on both Windows 2000 and Windows XP
machines, both
> producing the same error. Anyone got any ideas?
>
> Thanks in Advance,
>
> Lee.
>
> --- Output from nmake ---
>
> C:\Documents and Settings\admin\Desktop\poker-eval-src-121
\lib>nmake /f
> Makefile
> .dos clean
>
> Microsoft (R) Program Maintenance Utility Version 6.00.8168.0
> Copyright (C) Microsoft Corp 1988-1998. All rights reserved.
>
> del *.obj core t_nbits.obj t_topbit.obj t_topcard.obj
> t_topfivecards.obj
> t_topfivebits.obj t_toptwobits.obj t_cardmasks.obj t_maskrank.obj
> t_straight.o
> bj t_nbitsandstr.obj t_evx_pairval.obj t_evx_strval.obj
> t_evx_tripsval.obj t_e
> vx_flushcards.obj t_astudcardmasks.obj t_jokercardmasks.obj
> t_jokerstraight.ob
> j t_botfivecards.obj t_botcard.obj t_botfivecardsj.obj deck.obj
> deck_std.obj r
> ules_std.obj rules_joker.obj evx.obj deck_astud.obj
rules_astud.obj
> deck_joker.
> obj lowball.obj md5c.obj enumerate.obj combinations.obj
libpoker.lib
> libpoker.d
> ll
> del t_nbits.c t_topbit.c t_topcard.c t_topfivecards.c
> t_topfivebits.c t
> _toptwobits.c t_cardmasks.c t_maskrank.c t_straight.c
t_nbitsandstr.c
> t_evx_pa
> irval.c t_evx_strval.c t_evx_tripsval.c t_evx_flushcards.c
> t_astudcardmasks.c
> t_jokercardmasks.c t_jokerstraight.c t_botfivecards.c t_botcard.c
> t_botfivecard
> sj.c mktab_basic.exe mktab_packed.exe mktab_evx.exe mktab_astud.exe
> mktab_joker
> .exe mktab_lowball.exe evx_gen5.exe evx_gen7.exe
>
> C:\Documents and Settings\admin\Desktop\poker-eval-src-121
\lib>nmake /f
> Makefile
> .dos
>
> Microsoft (R) Program Maintenance Utility Version 6.00.8168.0
> Copyright (C) Microsoft Corp 1988-1998. All rights reserved.
>
> cl -O1 -nologo -DNDEBUG -MD -DMSDOS -I../include -c
> mktab_basic.c
> mktab_basic.c
> mktab_basic.c(71) : warning C4761: integral size mismatch in
argument;
> conversio
> n supplied
> mktab_basic.c(87) : warning C4761: integral size mismatch in
argument;
> conversio
> n supplied
> mktab_basic.c(196) : warning C4761: integral size mismatch in
argument;
> conversi
> on supplied
> cl -O1 -nologo -DNDEBUG -MD -DMSDOS -I../include -c
mktable.c
> mktable.c
> cl -O1 -nologo -DNDEBUG -MD -DMSDOS -I../include -c
> mktable_utils.c
> mktable_utils.c
> cl -O1 -nologo -DNDEBUG -MD -DMSDOS -I../include
> -Femktab_basic.exe mkta
> b_basic.obj mktable.obj mktable_utils.obj
> mktab_basic.exe
> cl -O1 -nologo -DNDEBUG -MD -DMSDOS -I../include -c
t_nbits.c
> t_nbits.c
> mktab_basic.exe
> cl -O1 -nologo -DNDEBUG -MD -DMSDOS -I../include -c
t_topbit.c
> t_topbit.c
> mktab_basic.exe
> cl -O1 -nologo -DNDEBUG -MD -DMSDOS -I../include -c
t_topcard.c
> t_topcard.c
> mktab_basic.exe
> cl -O1 -nologo -DNDEBUG -MD -DMSDOS -I../include -c
> t_topfivecards.c
> t_topfivecards.c
> mktab_basic.exe
> cl -O1 -nologo -DNDEBUG -MD -DMSDOS -I../include -c
> t_topfivebits.c
> t_topfivebits.c
> cl -O1 -nologo -DNDEBUG -MD -DMSDOS -I../include -c
> t_toptwobits.c
> t_toptwobits.c
> cl -O1 -nologo -DNDEBUG -MD -DMSDOS -I../include -c
> t_cardmasks.c
> t_cardmasks.c
> cl -O1 -nologo -DNDEBUG -MD -DMSDOS -I../include -c
t_maskrank.c
> t_maskrank.c
> cl -O1 -nologo -DNDEBUG -MD -DMSDOS -I../include -c
t_straight.c
> t_straight.c
> cl -O1 -nologo -DNDEBUG -MD -DMSDOS -I../include -c
> mktab_packed.c
> mktab_packed.c
> mktab_packed.c(38) : warning C4761: integral size mismatch in
argument;
> conversi
> on supplied
> cl -O1 -nologo -DNDEBUG -MD -DMSDOS -I../include
> -Femktab_packed.exe mkt
> ab_packed.obj mktable.obj mktable_utils.obj
> mktab_packed.exe
> cl -O1 -nologo -DNDEBUG -MD -DMSDOS -I../include -c
> t_nbitsandstr.c
> t_nbitsandstr.c
> cl -O1 -nologo -DNDEBUG -MD -DMSDOS -I../include -c
mktab_evx.c
> mktab_evx.c
> cl -O1 -nologo -DNDEBUG -MD -DMSDOS -I../include
> -Femktab_evx.exe
> mktab_
> evx.obj mktable.obj mktable_utils.obj
> mktab_evx.exe
> cl -O1 -nologo -DNDEBUG -MD -DMSDOS -I../include -c
> t_evx_pairval.c
> t_evx_pairval.c
> mktab_evx.exe
> cl -O1 -nologo -DNDEBUG -MD -DMSDOS -I../include -c
> t_evx_strval.c
> t_evx_strval.c
> mktab_evx.exe
> cl -O1 -nologo -DNDEBUG -MD -DMSDOS -I../include -c
> t_evx_tripsval.c
> t_evx_tripsval.c
> mktab_evx.exe
> cl -O1 -nologo -DNDEBUG -MD -DMSDOS -I../include -c
> t_evx_flushcards.c
> t_evx_flushcards.c
> cl -O1 -nologo -DNDEBUG -MD -DMSDOS -I../include -c
> mktab_astud.c
> mktab_astud.c
> cl -O1 -nologo -DNDEBUG -MD -DMSDOS -I../include
> -Femktab_astud.exe mkta
> b_astud.obj mktable.obj mktable_utils.obj
> mktab_astud.exe
> cl -O1 -nologo -DNDEBUG -MD -DMSDOS -I../include -c
> t_astudcardmasks.c
> t_astudcardmasks.c
> cl -O1 -nologo -DNDEBUG -MD -DMSDOS -I../include -c
> mktab_joker.c
> mktab_joker.c
> mktab_joker.c(83) : warning C4761: integral size mismatch in
argument;
> conversio
> n supplied
> cl -O1 -nologo -DNDEBUG -MD -DMSDOS -I../include
> -Femktab_joker.exe mkta
> b_joker.obj mktable.obj mktable_utils.obj
> mktab_joker.exe
> cl -O1 -nologo -DNDEBUG -MD -DMSDOS -I../include -c
> t_jokercardmasks.c
> t_jokercardmasks.c
> mktab_joker.exe
> cl -O1 -nologo -DNDEBUG -MD -DMSDOS -I../include -c
> t_jokerstraight.c
> t_jokerstraight.c
> cl -O1 -nologo -DNDEBUG -MD -DMSDOS -I../include -c
> mktab_lowball.c
> mktab_lowball.c
> mktab_lowball.c(115) : warning C4761: integral size mismatch in
> argument;
> conver
> sion supplied
> cl -O1 -nologo -DNDEBUG -MD -DMSDOS -I../include
> -Femktab_lowball.exe mk
> tab_lowball.obj mktable.obj mktable_utils.obj
> mktab_lowball.exe
> cl -O1 -nologo -DNDEBUG -MD -DMSDOS -I../include -c
> t_botfivecards.c
> t_botfivecards.c
> mktab_lowball.exe
> cl -O1 -nologo -DNDEBUG -MD -DMSDOS -I../include -c
t_botcard.c
> t_botcard.c
> mktab_lowball.exe
> cl -O1 -nologo -DNDEBUG -MD -DMSDOS -I../include -c
> t_botfivecardsj.c
> t_botfivecardsj.c
> cl -O1 -nologo -DNDEBUG -MD -DMSDOS -I../include -c deck.c
> deck.c
> cl -O1 -nologo -DNDEBUG -MD -DMSDOS -I../include -c
deck_std.c
> deck_std.c
> cl -O1 -nologo -DNDEBUG -MD -DMSDOS -I../include -c
rules_std.c
> rules_std.c
> cl -O1 -nologo -DNDEBUG -MD -DMSDOS -I../include -c
> rules_joker.c
> rules_joker.c
> cl -O1 -nologo -DNDEBUG -MD -DMSDOS -I../include -c evx.c
> evx.c
> cl -O1 -nologo -DNDEBUG -MD -DMSDOS -I../include -c
deck_astud.c
> deck_astud.c
> cl -O1 -nologo -DNDEBUG -MD -DMSDOS -I../include -c
> rules_astud.c
> rules_astud.c
> cl -O1 -nologo -DNDEBUG -MD -DMSDOS -I../include -c
deck_joker.c
> deck_joker.c
> cl -O1 -nologo -DNDEBUG -MD -DMSDOS -I../include -c
lowball.c
> lowball.c
> cl -O1 -nologo -DNDEBUG -MD -DMSDOS -I../include -c md5c.c
> md5c.c
> cl -O1 -nologo -DNDEBUG -MD -DMSDOS -I../include -c
enumerate.c
> enumerate.c
> cl -O1 -nologo -DNDEBUG -MD -DMSDOS -I../include -c
> combinations.c
> combinations.c
> LIB /OUT:libpoker.lib t_nbits.obj t_topbit.obj
t_topcard.obj
> t_topfiveca
> rds.obj t_topfivebits.obj t_toptwobits.obj t_cardmasks.obj
> t_maskrank.obj
> t_stra
> ight.obj t_nbitsandstr.obj t_evx_pairval.obj t_evx_strval.obj
> t_evx_tripsval.obj
> t_evx_flushcards.obj t_astudcardmasks.obj t_jokercardmasks.obj
> t_jokerstraight.
> obj t_botfivecards.obj t_botcard.obj t_botfivecardsj.obj deck.obj
> deck_std.obj r
> ules_std.obj rules_joker.obj evx.obj deck_astud.obj rules_astud.obj
> deck_joker.o
> bj lowball.obj md5c.obj enumerate.obj combinations.obj
> Microsoft (R) Library Manager Version 6.00.8168
> Copyright (C) Microsoft Corp 1992-1998. All rights reserved.
>
> rem libpoker.lib
> LINK /DLL /OUT:libpoker.dll t_nbits.obj t_topbit.obj
> t_topcard.obj
> t_top
> fivecards.obj t_topfivebits.obj t_toptwobits.obj t_cardmasks.obj
> t_maskrank.obj
> t_straight.obj t_nbitsandstr.obj t_evx_pairval.obj t_evx_strval.obj
> t_evx_tripsv
> al.obj t_evx_flushcards.obj t_astudcardmasks.obj
t_jokercardmasks.obj
> t_jokerstr
> aight.obj t_botfivecards.obj t_botcard.obj t_botfivecardsj.obj
deck.obj
> deck_std
> .obj rules_std.obj rules_joker.obj evx.obj deck_astud.obj
> rules_astud.obj
> deck_j
> oker.obj lowball.obj md5c.obj enumerate.obj combinations.obj
> Microsoft (R) Incremental Linker Version 6.00.8168
> Copyright (C) Microsoft Corp 1992-1998. All rights reserved.
>
> enumerate.obj : error LNK2001: unresolved external symbol _random
> libpoker.dll : fatal error LNK1120: 1 unresolved externals
> NMAKE : fatal error U1077: 'LINK' : return code '0x460'
> Stop.
>
>
>
>
> Yahoo! Groups Sponsor
>
> ADVERTISEMENT
>
>
<http://rd.yahoo.com/M=243273.4089246.5300282.1261774/D=egroupweb/S=1
705
>
006497:HM/A=1750744/R=0/SIG=1298o4jnr/*http://servedby.advertising.co
m/c
> lick/site=552006/bnum=1067668551497474> Click to learn more...
>
> <http://us.adserver.yahoo.com/l?
M=243273.4089246.5300282.1261774/D=egrou
> pmail/S=:HM/A=1750744/rand=395736294>
>
> Your use of Yahoo! Groups is subject to the Yahoo! Terms of Service
> <http://docs.yahoo.com/info/terms/> .