Subject: Re: [boost] Autolinking not working in Windows x64 cross-compileenvironment
From: John Maddock (john_at_[hidden])
Date: 2008-10-09 05:10:36
Dave Barnett wrote:
>> I have taken the Boost 1.33.1 distribution [we have to stay with
>> this for consistency with our Linux build...], along with the extra
>> information here (
>> http://en.allexperts.com/q/C-1040/Building-boost-libraries-64.htm )
>> and been able to generate the Boost libraries using the X64 compiler
>> on a machine running Windows XP Pro 64.
>> I have taken the compiled libraries and copied them to our 32-bit XP
>> Pro build machine for use in an X64 cross-compile environment. [We
>> working on setting up a native X64 build machine, but it is a work
>> in progress....]
>> When I try to link, I get the list of unresolved symbols below. We
>> use a command-line tool to do our builds, which calls "cl", "lib",
>> "mt", and "link" directly. If I modify the link file passed to
>> "link" such that it adds "s:\....\libboost_thread-vc80-mt-1_33_1.lib
>> [which is the one dumpbin shows our object wants....], our DLL
>> (omega_runtime) will link successfully.
>> So, to my untrained eye [I'm new to building on Windows....] it
>> looks like there is something wrong with the autolink magic.
Can you try defining BOOST_LIB_DIAGNOSTIC when building as that will print
out the name of the library being selected to link against. Possible causes
* _DEBUG is being explicitly defined even though you're actually linking to
the release runtime (in which case it shouldn't be).
* You've actually got the 32-bit binaries in your lib search path.
Boost list run by bdawes at acm.org, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk