On Fri, Oct 13, 2017 at 4:11 PM, Edward Diener via Boost < boost@lists.boost.org> wrote:
If I build any library with any version vc++ 64-bit compiler, by using address-model=64, the vcvarsall.bat is looked for at, for example with msvc-14.0, C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/bin/vcvarsall.bat and is not found. Naturally this leads to basic compilation failures. The path for vcvarsall.bat for msvc-14.0 is C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/vcvarsall.bat instead. All versions of vc++ follow this path structure for vcvarsall.bat
Building with any version of vc++ 32-bit, by not specifying the address-model, works correctly.
I do not see this behavior on my system, using a stock cmd.exe (not running from a Visual Studio command line prompt) using the command: c:\boost\libs\format\test>rmdir /s /q c:\boost\bin.v2\libs c:\boost\libs\format\test>..\..\..\b2 toolset=msvc-14.0 address-model=32,64 variant=debug,release -q -j5 The resulting test binaries were correctly 32-bit and 64-bit. If I do not specify address-model on the command line, I get a 32-bit executable. I find it quite odd that 32-bit would be the default here. In the summary output after launching b2 when building, 64-bit is not displayed as a line item either, only 32-bit is. But on linux 32-bit and 64-bit line items are shown in the summary. If I do the same build with msvc-14.1 as the toolset, the default output is also 32-bit. It looks like there is some technical debt that needs to be addressed here. Shouldn't default builds on Visual Studio 2015, 2017 be 64-bit if not specified? - Jim