Subject: [Boost-bugs] [Boost C++ Libraries] #12266: Visual Studio 2015 Express for Desktop and 64-bit builds
From: Boost C++ Libraries (noreply_at_[hidden])
Date: 2016-06-11 21:15:15
#12266: Visual Studio 2015 Express for Desktop and 64-bit builds
----------------------------+------------------------------
Reporter: carles.cufi@⦠| Type: Bugs
Status: new | Milestone: To Be Determined
Component: Building Boost | Version: Boost 1.61.0
Severity: Problem | Keywords:
----------------------------+------------------------------
When building Boost statically as a set of 64-bit static libraries, I have
found that using the "usual" Command Prompt doesn't yield 64-bit objects,
but rather 32-bit ones.
The build commands I am issuing are:
bootstrap.bat
b2 toolset=msvc-14.0 address-model=64 link=static --with-thread --with-
system --with-regex --with-date_time --with-chrono
If I open a "Developer Command Prompt" (equivalent to executing %comspec%
/k ""C:\Program Files (x86)\Microsoft Visual Studio
14.0\Common7\Tools\VsDevCmd.bat"") and then build with the commands above,
the libraries generated are 32-bit.
If I open a "standard" command prompt (equivalent to %comspec% /k
""C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\vcvarsall.bat""
x86)
and then build with the commands above, the libraries generated are
32-bit.
Finally, if I open a "Visual Studio 2015 x86 x64 Cross Tools Command
Prompt" (equivalent to %comspec% /k ""C:\Program Files (x86)\Microsoft
Visual Studio 14.0\VC\vcvarsall.bat"" x86_amd64) and then build with the
commands above, the libraries generated are 64-bit.
This is in my opinion a problem because of two reasons:
1) This contradicts the documentation in:
http://www.boost.org/build/doc/html/bbv2/reference/tools.html#bbv2.reference.tools.compiler.msvc
where it says: "Configure you compiler as usual. If you provide a path to
the compiler explicitly, provide the path to the 32-bit compiler. If you
try to specify the path to any of 64-bit compilers, configuration will not
work."
The usual configuration on Windows is the standard Developer Command
Prompt.
2) The build doesn't fail or complain that it cannot generate 64-bit
binaries, and instead silently disregards the "address-model=64" option
and generates 32-bit binaries.
Please note that with other tools (CMake for example) one can build both
32 and 64-bit binaries from a "standard" command prompt (i.e. no need to
invoke vcvarsall.bat x86_amd64).
-- Ticket URL: <https://svn.boost.org/trac/boost/ticket/12266> Boost C++ Libraries <http://www.boost.org/> Boost provides free peer-reviewed portable C++ source libraries.
This archive was generated by hypermail 2.1.7 : 2017-02-16 18:50:20 UTC