Boost logo

Boost :

From: David Abrahams (dave_at_[hidden])
Date: 2003-06-24 07:01:55


"John Maddock" <jm_at_[hidden]> writes:

>> I just checked out the latest CVS and I am having trouble building it.
>> My environment is:
>>
>> - Windows XP
>> - Intel Version 7.1, Build 20030402Z
>> - Visual C++ 7.0
>>
>> All my environment variables are setup correctly (INCLUDE, LIB, MSVCDIR,
>> INTEL_PATH, PATH). The command line I am using with bjam is:
>>
>> bjam -sTOOLS=intel-win32 -sINTEL_BASE_MSVC_TOOLSET=vc7
>> -sPYTHON_ROOT=C:\Python
>>
>> Looking at the command line that bjam is executing to compile the files,
>> it seems to be all right (paths to header files, the correct compiler,
> etc).
>
>> This error happens in a lot of files, besides numeric.cpp. I let it try
>> to compile more 6 files before I gave up, since something is obviously
>> wrong. If needed, I can post the list of files that are giving this error.
>>
>> Does anybody know what am I doing wrong?
>
> It looks like the config system is assuming that wchar_t is a native
> type,

The config system shouldn't make that assumption; we explicitly set
_NATIVE_WCHAR_T_DEFINED when we turn on wide character support.

> but that it isn't being turned on in the compiler - perhaps a boost.build
> expert can jump in here....

The code which handles it is:

    # tell the compiler about the base toolset.
    if $(INTEL_BASE_MSVC_TOOLSET) = msvc
    {
        C++FLAGS += /Qvc6 ;
        # no wchar_t support in vc6 dinkum library.
    }
    else
    {
        if $(version) > 5
        {
            # Add support for wchar_t
            C++FLAGS += /Zc:wchar_t
              # Tell the dinkumware library about it.
              -D_NATIVE_WCHAR_T_DEFINED
              ;
        }

        C++FLAGS += /Q$(INTEL_BASE_MSVC_TOOLSET) ;
    }

If your installation path for the compiler includes a "CompilerXX"
element, where XX is a two-digit number, it will deduce the version
from that. Otherwise, you should set INTEL_VERSION to a one digit
number, "7" in your case. Note that if you installed Intel to use
msvc6 as its back-end toolset, you won't get wchar_t support either
because the standard library can't handle it.

-- 
Dave Abrahams
Boost Consulting
www.boost-consulting.com

Boost list run by bdawes at acm.org, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk