On Sun, Jun 30, 2013 at 6:59 PM, Richard <legalize+jeeves@mail.xmission.com> wrote:
It sounds like auto linking of the library is picking up the wrong one.
Auto-linking uses #pragma comment(lib, <name>) to specify the library
name needed for linking.  It doesn't specify a directory location for
the library, only its name.

I am not using auto-linking, I have defined BOOST_ALL_NO_LIB and provide an explicit path to the library. Actually, CMake does it for me. I have not compiled the x86 versions of the library as I have no use of them.

I have checked with the 1.54 RC (in case it would be a known issue) and have the same problem.

 

Do you have your library search path set to the location of the x64
libraries?

You can verify the library is x64 with dumpbin:

D:\Code\boost\boost-trunk\stage\lib>dumpbin /all libboost_unit_test_framework-vc110-mt-gd-1_54.lib  |find /i "machine"
            8664 machine (x64)
                        8664 machine (x64)
                        8664 machine (x64)

This is interesting, thanks for the tip. I checked with dumpbin and all the library are actually x86 binaries. However, I stated earlier that I used serialization in x64 binaries without error. That is true, but they were compiled with VS2010. I checked and all the libraries compiled with VS2010 are indeed x64 (obtainted with the same b2 command line but with the appropriate toolset). Are you also using VS2012?