Boost logo

Boost Users :

From: Brady Reed (bradyreed_at_[hidden])
Date: 2008-04-16 17:53:05


Let me say up front that my goal is to build the regex lib with Visual C++ 8.0 using nmake and the supplied makefiles with as little modification to the boost sources as possible. In fact, I would like to limit customization for Windows Mobile 5 entirely to adding #define's to boost/config/user.hpp. Is this possible? It would certainly minimize the amount of work when upgrading boost.

In order to minimize the number of files to keep under source control, I've moved only the regex-relevant files from the full zip extraction to the source control directories. I tested this by copying files from the 1.35 boost distribution until I had a clean XP desktop VC8 build. However, the output below shows where the WM5 build fails right out of the gate. There seems to be an stdlib issue with a missing 'strxfrm'.

In order to build for WM5, I've taken the following steps so far:
(1) Added to boost\config\user.hpp:
#define BOOST_NO_STD_LOCALE
#define BOOST_USE_WINDOWS_H

//Undefine the WIN32 that was defined in the makefile command line
#undef WIN32

// Define the appropriate versions of WinCE
#define _WIN32_WCE 500
#define UNDER_CE 500

// Define processor type
#define _ARM_

// Define compiler version
#define _VC80_UPGRADE 0x0710

(2) After navigating to <boost>/boost/libs/regex/build, set the INCLUDE environment variable to (broken into lines here to help readability):
C:\Program Files\Microsoft Visual Studio 8\VC\ce\include;
C:\Program Files\Windows CE Tools\wce500\Windows Mobile 5.0 Pocket PC SDK\include;
C:\Program Files\Windows CE Tools\wce500\Windows Mobile 5.0 Pocket PC SDK\include\ARMV4I;

then invoke nmake -fvc8.mak all

(3) The resulting output on the command line is:

        cl /nologo /MT /W3 /EHsc /O2 /GF /Gy /I..\..\..\ /D_MT /DWIN32 /DNDEBU
G /D_MBCS /D_LIB /FD /Zc:wchar_t /c -Y- -Fo./vc80/libboost_regex-vc80-mt-s-1_3
5/ -Fdvc80/libboost_regex-vc80-mt-s-1_35.pdb ../src/c_regex_traits.cpp
c_regex_traits.cpp
../src/c_regex_traits.cpp(54) : error C2039: 'strxfrm' : is not a member of 'std'
../src/c_regex_traits.cpp(54) : error C3861: 'strxfrm': identifier not found
../src/c_regex_traits.cpp(54) : fatal error C1903: unable to recover from previous error(s); stopping compilation
NMAKE : fatal error U1077: '"C:\Program Files\Microsoft Visual Studio 8\VC\bin\cl.EXE"' : return code '0x2'
Stop.

In http://article.gmane.org/gmane.comp.lib.boost.user/32566/ it was stated that
the regex lib should build out of the box for Windows Mobile. What am I doing wrong?


Boost-users list run by williamkempf at hotmail.com, kalb at libertysoft.com, bjorn.karlsson at readsoft.com, gregod at cs.rpi.edu, wekempf at cox.net