Boost logo

Boost-Build :

From: Paul Heil (paul.heil_at_[hidden])
Date: 2008-08-20 10:17:08


On Tue, Aug 19, 2008 at 11:21 PM, David Deakins <ddeakins_at_[hidden]> wrote:

> Paul Heil wrote:
>
>> I'd like to use the Boost library in my Windows Mobile / WinCE projects.
>> I've made some progress compiling Boost 1.36.0
>> with STLport-5.1.5 for that platform, but I've run in to some issues.
>>
>> During my research, I've found e-mails dating from 2005 to 2007 that
>> report varying degrees of success, but nothing
>> conclusive. Has anybody put together a guide for compiling for the ARMV4I
>> WM5/WM6 platforms using Visual Studio 9?
>>
>
> Although we haven't exactly put together a guide, my group has been using
> Boost with STLport-5.1.5 and Visual C++ 8 (VS2005) for several years. We
> compile for a WinCE 5.0 x86 target and also cross-compile for WM5 ARMV4I. A
> great deal of the Boost libraries work quite well under WinCE.
>
>
>> My specific problem is that when I attempt to link against the Boost
>> libraries I've compiled, I get a linker error:
>> fatal error LNK1112: module machine type 'X86' conflicts with target
>> machine type 'THUMB'
>> when linking against: libboost_system-vc90-mt-sp-1_36.lib
>>
>>
> I believe this has to do with how the linkflags settings are configured in
> your user-config.jam file. You'll need to explicitly ask for /machine:THUMB
> to be passed to the linker or else it will default to building the libraries
> for X86. For an example of the compile and link flags we included in our
> builds you look at the summary of the VeecoFTC regression test platform
> under the Windows section of the trunk regression tests:
>
> http://beta.boost.org/development/tests/trunk/developer/summary.html
>
> Just click on the VeecoFTC link in the header and you'll see the
> user-config.jam info we use for WM5.
>
> -Dave
>
> _______________________________________________
> Unsubscribe & other changes:
> http://lists.boost.org/mailman/listinfo.cgi/boost-build
>

The VeecoFTC user-config.jam is a good part of the reason I've gotten as far
as I have. If that's yours, then thank you. It's been very helpful. Below is
the my addition to my user-config.jam file that I based on the VeecoFTC one.

using msvc : WM5 :
    "cl.exe" :
    <compileflags>-D_CRT_SECURE_NO_WARNINGS
    <compileflags>-D_WIN32_WCE=0x501
    <compileflags>-DUNDER_CE=0x501
    <compileflags>-DWIN32_WCE_PSPC
    <compileflags>-DWINCE
    <compileflags>-DARM
    <compileflags>-D_ARM_
    <compileflags>-DARMV4I
    <compileflags>-D_LITTLE_ENDIAN
    <compileflags>-DUNICODE
    <compileflags>-D_UNICODE
    <compileflags>-DPOCKETPC2003_UI_MODEL
    <linkflags>/subsystem:windowsce,5.01
    <linkflags>/machine:THUMB
    <linkflags>/NODEFAULTLIB:oldnames.lib
    <linkflags>/STACK:262144,4096
    <linkflags>coredll.lib
    <linkflags>corelibc.lib
    <linkflags>ole32.lib
    <linkflags>oleaut32.lib
    <linkflags>uuid.lib
    <linkflags>commctrl.lib
    <architecture>arm
    <instruction-set>armv4
    <interface>wince
    <assembler>"armasm.exe "
;

I've been using this command line to compile:
bjam --without-python --without-mpi
msvc-WM5/variant=debug,release/threading=multi/stdlib=stlport/link=shared,static/runtime-link=static
stage

Obviously, I'm still missing something, though. Can you tell from this what
that is?

Thanks,
PaulH



Boost-Build list run by bdawes at acm.org, david.abrahams at rcn.com, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk