Сообщение
32-bit: yes
вводит в заблуждение.
Это означает только то, что компилятор по умолчанию (часто msvc) имеет 32-битную версию доступно .
Это НЕ означает, что сгенерированный код не предназначен для 64-битной цели (если вы поставите address-model=64
).
--reconfigure
очищает кеш и гарантирует, что вы получите некэшированное значение (которое по-прежнему будет 32-разрядным, если в качестве компилятора по умолчанию используется msvc).
И будьте осторожны: чтобы получить полностью чистую сборку после изменения установленных функций компилятора, обычно из обновления, вы также должны удалить несколько кэшированных версий vcvarsall.bat
в C:\Users\The_User\AppData\Local\Temp
(VS2015 обновление 3 и очень вероятно обновление 5, когда расположение многих системных файлов планируется изменить, и, следовательно, макросы определяются как vcvarsall.bat
).
Вот такие имена:
b2_msvc_14.0_vcvarsall_amd64.cmd
...
Подтверждение создания чистой копии этих файлов выглядит следующим образом:
I:\modular-boost\libs\hello_boost\example>b2 -a toolset=msvc-14.0
CRT_IncludePath_x64 = C:\Program Files (x86)\Windows Kits\10\Include\10.0.10240.0\ucrt using msvc
...found 1 target...
...updating 1 target...
msvc.write-setup-script C:\Users\paula\AppData\Local\Temp\b2_msvc_14.0_vcvarsall_x86.cmd
...updated 1 target...
...found 1 target...
...updating 1 target...
msvc.write-setup-script C:\Users\paula\AppData\Local\Temp\b2_msvc_14.0_vcvarsall_amd64.cmd
...updated 1 target...
...found 1 target...
...updating 1 target...
msvc.write-setup-script C:\Users\paula\AppData\Local\Temp\b2_msvc_14.0_vcvarsall_x86_arm.cmd
...updated 1 target...
Если у вас нет чистой копии, будет использоваться «кэшированная» версия vsvarsall.bat
, возможно, для создания жестоко запутанных сообщений о файлах, которые существуют, например:
C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\INCLUDE\crtdefs.h(10): fatal error C1083: Cannot open include file: 'corecrt.h': No such file or directory