develooper Front page | perl.perl5.porters | Postings from November 2013

Re: [perl #120365] WinCE build instructions

Thread Previous | Thread Next
Steve Hay
November 4, 2013 22:34
Re: [perl #120365] WinCE build instructions
Message ID:
On 3 November 2013 22:57, bulk88 via RT <> wrote:
> On Sun Nov 03 13:55:54 2013, shay wrote:
>> Is this a current product? It seems not (the Wikipedia page speaks of
>> it being replaced in VS2005), so people won't find it easy to locate
>> without your link, and I wonder how much longer that link will stay
>> live for given that the other page (linked to by Wikipedia) has been
>> taken down already... I think we also need instructions on how to
>> build with something that is current and more readily available.
> Paid VS rarer at P5P. I've used Smart Devices for VS 2008 more than EVC4, Smart Device is an install option with VS 2008. I used EVC4 for the instructions because it is free and some other P5Per wanted to try to build it but doesn't have a paid VS.

After I've got this EVC4 build working, I would be interested (as
someone that has full VS installs) to try out the Smart Devices route

>> 7. In step 8, errors do indeed occur! The build fails on the first C
>> source file compilation:
>> av.c
>> c:\dev\git\perl\perl.h(628) : fatal error C1083: Cannot open include
>> file: 'stda
>> rg.h': No such file or directory
>> NMAKE : fatal error U1077: 'clarm.exe' : return code '0x2'
>> Stop.
>> The file stdarg.h does exist in "C:\Dev\Git\perl\win32>dir "C:\Program
>> Files (x86)\Windows CE Tools\wce400\STANDARDSDK\Include\Armv4" so I
>> appended that path to the INCLUDE environment variable and ran "nmake
>> -f Makefile.ce" again.
>> This time there was no complaint about the stdarg.h header file being
>> missing, but the compilation of av.c still failed, now with syntax
>> errors in c:\dev\software\celib\inc\cewin32.h (c:\dev\software\celib
>> is where I extracted your celib zip file):
>> av.c
>> c:\dev\software\celib\inc\cewin32.h(184) : error C2146: syntax error :
>> missing '
>> )' before identifier 'lpABC'
> Ive seen that before. I'll try to build with EVC4 later today, but I think I know what happened.
> If you have spare time, goto celib-palm-3.0\inc\cewin32.h, grep for "typedef struct _ABC {" and uncomment the struct and try again. My hypothesis is it was defined on the newer Smart Devices SDK and I commented it out. I'll probably have to think up a name of macro to create to say which MS SDK (EVC4/smart devices/newer) celib is being being #included with, since _MSC_VER won't do it.

I've done that and the build now gets further but fails when linking
the main DLL:

        link -dll -def:perldll.def -base:0x28000000 -out:wince-arm-pocket-wce400
\perl519.dll  -subsystem:windowsce,4.00 -libpath:C:\Dev\Software\celib\wince-arm
-pocket-wce400-release  -nologo -debug -opt:ref,icf -machine:ARM  -nodefaultlib
 ws2.lib celib.lib coredll.lib corelibc.lib   wince-arm-pocket-wce400\dll\av.obj
  wince-arm-pocket-wce400\dll\deb.obj  wince-arm-pocket-wce400\dll\doio.obj  win
ce-arm-pocket-wce400\dll\doop.obj  wince-arm-pocket-wce400\dll\dump.obj  wince-a
rm-pocket-wce400\dll\globals.obj  wince-arm-pocket-wce400\dll\gv.obj  wince-arm-
pocket-wce400\dll\mro.obj  wince-arm-pocket-wce400\dll\hv.obj  wince-arm-pocket-
wce400\dll\locale.obj  wince-arm-pocket-wce400\dll\keywords.obj  wince-arm-pocke
t-wce400\dll\mathoms.obj  wince-arm-pocket-wce400\dll\mg.obj  wince-arm-pocket-w
ce400\dll\numeric.obj  wince-arm-pocket-wce400\dll\op.obj  wince-arm-pocket-wce4
00\dll\pad.obj  wince-arm-pocket-wce400\dll\perl.obj  wince-arm-pocket-wce400\dl
l\perlapi.obj  wince-arm-pocket-wce400\dll\perlio.obj  wince-arm-pocket-wce400\d
ll\perly.obj  wince-arm-pocket-wce400\dll\pp.obj  wince-arm-pocket-wce400\dll\pp
_ctl.obj  wince-arm-pocket-wce400\dll\pp_hot.obj  wince-arm-pocket-wce400\dll\pp
_pack.obj  wince-arm-pocket-wce400\dll\pp_sort.obj  wince-arm-pocket-wce400\dll\
pp_sys.obj  wince-arm-pocket-wce400\dll\reentr.obj  wince-arm-pocket-wce400\dll\
regcomp.obj  wince-arm-pocket-wce400\dll\regexec.obj  wince-arm-pocket-wce400\dl
l\run.obj  wince-arm-pocket-wce400\dll\scope.obj  wince-arm-pocket-wce400\dll\sv
.obj  wince-arm-pocket-wce400\dll\taint.obj  wince-arm-pocket-wce400\dll\toke.ob
j  wince-arm-pocket-wce400\dll\universal.obj  wince-arm-pocket-wce400\dll\utf8.o
bj  wince-arm-pocket-wce400\dll\util.obj  wince-arm-pocket-wce400\dll\win32threa
d.obj  wince-arm-pocket-wce400\dll\wince.obj  wince-arm-pocket-wce400\dll\win32i
o.obj  wince-arm-pocket-wce400\dll\wincesck.obj  wince-arm-pocket-wce400\dll\per
llib.obj  wince-arm-pocket-wce400\dll\DynaLoader.obj wince-arm-pocket-wce400\dll
LINK : fatal error LNK1181: cannot open input file 'ws2.lib'
NMAKE : fatal error U1077: 'link' : return code '0x49d'

Thread Previous | Thread Next Perl Programming lists via nntp and http.
Comments to Ask Bjørn Hansen at | Group listing | About