STLPort - VC++ 2008 - Build Git

Help
Never Best
2010-01-22
2013-05-13
  • Never Best
    Never Best
    2010-01-22

    I can't seem to build anything since the build directory was changed from build/lib to src.
    2010-01-21 - HEAD  (Does NOT work)
    2008-09-30 - 62d9b0d0b389acdc538557142bb2156ee6044dd7 (Does NOT work)
    2008-08-26 - f0149dfa8c1554fe8b5256ce21c1d8c948e5a631 (DOES work)

    I assume I must be doing something horribly wrong ;)  I'm using Visual Studio 2008, Windows 7.  Steps I do to attempt to build:

    1. Open "Visual Studio 2008 Command Prompt"
    2. configure.bat msvc9
    3. cd ./src
    4. nmake clean install

    Below is the error message.  I do notice the configure script still says "build/lib" even in HEAD.

    Setting environment for using Microsoft Visual Studio 2008 x86 tools.
    STLport Configuration Tool for Windows
    Setting compiler: Microsoft Visual C++ 2008
    Setting platform: Windows XP
    Done configuring STLport.
    Go to build/lib folder and type "nmake clean install" to build  and
    install STLport to the "lib" and "bin" folders.
    Go to build/test/unit folder and type nmake clean install to
    build unit tests and install them in bin folder.
    Microsoft (R) Program Maintenance Utility Version 9.00.21022.08
    Copyright (C) Microsoft Corporation.  All rights reserved.
            cl /nologo /W4 /EHsc /Zm800  /GL /MD /Zi /O2  /DWINVER=0x0501  /DWIN32 /D_WINDOWS /DNDEBUG  /I../stlport  /c /Foobj\vc9\shared\dll_main.o /Fdobj\vc9\shared\stlport.6.0.pdb dll_main.c
    pp
    dll_main.cpp
    S:\stlport-bc395e7f8d7a9c36f51a44499b3e9fd11c50a5a5.tar\stlport\stlport\type_traits(62) : error C4980: '__value' : use of this keyword requires /clr:oldSyntax command line option
    S:\stlport-bc395e7f8d7a9c36f51a44499b3e9fd11c50a5a5.tar\stlport\stlport\type_traits(62) : error C2059: syntax error : '__value'
            S:\stlport-bc395e7f8d7a9c36f51a44499b3e9fd11c50a5a5.tar\stlport\stlport\type_traits(65) : see reference to class template instantiation 'stlp_std::tr1::detail::__instance<_Tp>' being
     compiled
    S:\stlport-bc395e7f8d7a9c36f51a44499b3e9fd11c50a5a5.tar\stlport\stlport\type_traits(62) : error C2059: syntax error : '='
    S:\stlport-bc395e7f8d7a9c36f51a44499b3e9fd11c50a5a5.tar\stlport\stlport\type_traits(62) : error C2238: unexpected token(s) preceding ';'
    S:\stlport-bc395e7f8d7a9c36f51a44499b3e9fd11c50a5a5.tar\stlport\stlport\type_traits(87) : error C2059: syntax error : '__value'
            S:\stlport-bc395e7f8d7a9c36f51a44499b3e9fd11c50a5a5.tar\stlport\stlport\type_traits(89) : see reference to class template instantiation 'stlp_std::tr1::detail::__uoc_aux<T>' being co
    mpiled
    S:\stlport-bc395e7f8d7a9c36f51a44499b3e9fd11c50a5a5.tar\stlport\stlport\type_traits(87) : error C2059: syntax error : '='
    S:\stlport-bc395e7f8d7a9c36f51a44499b3e9fd11c50a5a5.tar\stlport\stlport\type_traits(87) : error C2238: unexpected token(s) preceding ';'
    S:\stlport-bc395e7f8d7a9c36f51a44499b3e9fd11c50a5a5.tar\stlport\stlport\type_traits(150) : error C2589: '__value' : illegal token on right side of '::'
            S:\stlport-bc395e7f8d7a9c36f51a44499b3e9fd11c50a5a5.tar\stlport\stlport\type_traits(151) : see reference to class template instantiation 'stlp_std::tr1::detail::__is_union_or_class<_
    Tp>' being compiled
    S:\stlport-bc395e7f8d7a9c36f51a44499b3e9fd11c50a5a5.tar\stlport\stlport\type_traits(150) : error C2059: syntax error : '::'
    S:\stlport-bc395e7f8d7a9c36f51a44499b3e9fd11c50a5a5.tar\stlport\stlport\type_traits(150) : error C3630: error when processing the token '__value'
    S:\stlport-bc395e7f8d7a9c36f51a44499b3e9fd11c50a5a5.tar\stlport\stlport\type_traits(150) : fatal error C1190: managed targeted code requires a '/clr' option
    NMAKE : fatal error U1077: '"C:\Program Files (x86)\Microsoft Visual Studio 9.0\VC\BIN\cl.EXE"' : return code '0x2'
    

    Thanks, what step am I missing?

     
  • Anybody, who want to see Windows support in the future, should contribute (platform-specific code) in the project. I will review patches, but will not code for Windows.

     
  • mickstl
    mickstl
    2010-01-22

    I have similar problems. BUT the strange thing is that the following "error"

    \stlport\type_traits(62) : error C4980: '__value' : use of this keyword requires /clr:oldSyntax command line option

    does not arise in some builds. Chec out my build log here:https://sourceforge.net/projects/stlport/forums/forum/490892/topic/3525691

    I fixed the problem by renaming __value to __stlvalue since a grep did not reveal any other usage of __value anywhere else in the sources so i believe its ok. All other errors in the type_traits.cpp will automatically go away.

    There are a lot more errors. I suggest you try:
    nmake clean install > buildlog.txt

     
  • Never Best
    Never Best
    2010-01-22

    Thank you mickstl your info helped :)  As you already mentioned

    1. Replacing "__value" with "__stlvalue" in all locations of "type_traits" fixed the errors above.
    2. Commenting out the "template class _STLP_CLASS_DECLSPEC _LimG<bool>;" line in dll_main.cpp fixed the new errors that occurred.

    And then the "nmake clean install" in src built correctly :)  Lets hope I can use the new lib files fine *crosses fingers*.