boost::date_time error while building MongoDB: winapi is not member
up vote
1
down vote
favorite
While building MongoDB with SCons and boost, I'm getting errors. Here's my command line:
C:mongo-cxx-driver>Scons --prefix=$HOME/mongo-client-lib --cpppath=C:boost_1_66_0 --libpath=C:boost_1_66_0stage64lib --dbg=on --64 install
Here are the error messages I'm getting:
srcmongoutiltime_support.cpp(904): error C2039: 'winapi': is not a member of 'boost::date_time'
C:boost_1_66_0boost/date_time/filetime_functions.hpp(28): note: see declaration of 'boost::date_time'
srcmongoutiltime_support.cpp(904): error C3083: 'winapi': the symbol to the left of a '::' must be a type
srcmongoutiltime_support.cpp(904): error C2039: 'file_time_to_microseconds': is not a member of 'boost::date_time'
C:boost_1_66_0boost/date_time/filetime_functions.hpp(28): note: see declaration of 'boost::date_time'
srcmongoutiltime_support.cpp(904): error C3861: 'file_time_to_microseconds': identifier not found
srcmongoutiltime_support.cpp(936): error C2039: 'winapi': is not a member of 'boost::date_time'
C:boost_1_66_0boost/date_time/filetime_functions.hpp(28): note: see declaration of 'boost::date_time'
srcmongoutiltime_support.cpp(936): error C3083: 'winapi': the symbol to the left of a '::' must be a type
srcmongoutiltime_support.cpp(936): error C2039: 'file_time_to_microseconds': is not a member of 'boost::date_time'
C:boost_1_66_0boost/date_time/filetime_functions.hpp(28): note: see declaration of 'boost::date_time'
srcmongoutiltime_support.cpp(936): error C3861: 'file_time_to_microseconds': identifier not found
scons: *** [buildwin3264dbg_onmongoutiltime_support.obj] Error 2
scons: building terminated because of errors.
c++ mongodb boost boost-date-time
add a comment |
up vote
1
down vote
favorite
While building MongoDB with SCons and boost, I'm getting errors. Here's my command line:
C:mongo-cxx-driver>Scons --prefix=$HOME/mongo-client-lib --cpppath=C:boost_1_66_0 --libpath=C:boost_1_66_0stage64lib --dbg=on --64 install
Here are the error messages I'm getting:
srcmongoutiltime_support.cpp(904): error C2039: 'winapi': is not a member of 'boost::date_time'
C:boost_1_66_0boost/date_time/filetime_functions.hpp(28): note: see declaration of 'boost::date_time'
srcmongoutiltime_support.cpp(904): error C3083: 'winapi': the symbol to the left of a '::' must be a type
srcmongoutiltime_support.cpp(904): error C2039: 'file_time_to_microseconds': is not a member of 'boost::date_time'
C:boost_1_66_0boost/date_time/filetime_functions.hpp(28): note: see declaration of 'boost::date_time'
srcmongoutiltime_support.cpp(904): error C3861: 'file_time_to_microseconds': identifier not found
srcmongoutiltime_support.cpp(936): error C2039: 'winapi': is not a member of 'boost::date_time'
C:boost_1_66_0boost/date_time/filetime_functions.hpp(28): note: see declaration of 'boost::date_time'
srcmongoutiltime_support.cpp(936): error C3083: 'winapi': the symbol to the left of a '::' must be a type
srcmongoutiltime_support.cpp(936): error C2039: 'file_time_to_microseconds': is not a member of 'boost::date_time'
C:boost_1_66_0boost/date_time/filetime_functions.hpp(28): note: see declaration of 'boost::date_time'
srcmongoutiltime_support.cpp(936): error C3861: 'file_time_to_microseconds': identifier not found
scons: *** [buildwin3264dbg_onmongoutiltime_support.obj] Error 2
scons: building terminated because of errors.
c++ mongodb boost boost-date-time
The below answer is correct, but the good news is that we are working on fixing it. See my comment below.
– acm
Nov 13 at 21:50
add a comment |
up vote
1
down vote
favorite
up vote
1
down vote
favorite
While building MongoDB with SCons and boost, I'm getting errors. Here's my command line:
C:mongo-cxx-driver>Scons --prefix=$HOME/mongo-client-lib --cpppath=C:boost_1_66_0 --libpath=C:boost_1_66_0stage64lib --dbg=on --64 install
Here are the error messages I'm getting:
srcmongoutiltime_support.cpp(904): error C2039: 'winapi': is not a member of 'boost::date_time'
C:boost_1_66_0boost/date_time/filetime_functions.hpp(28): note: see declaration of 'boost::date_time'
srcmongoutiltime_support.cpp(904): error C3083: 'winapi': the symbol to the left of a '::' must be a type
srcmongoutiltime_support.cpp(904): error C2039: 'file_time_to_microseconds': is not a member of 'boost::date_time'
C:boost_1_66_0boost/date_time/filetime_functions.hpp(28): note: see declaration of 'boost::date_time'
srcmongoutiltime_support.cpp(904): error C3861: 'file_time_to_microseconds': identifier not found
srcmongoutiltime_support.cpp(936): error C2039: 'winapi': is not a member of 'boost::date_time'
C:boost_1_66_0boost/date_time/filetime_functions.hpp(28): note: see declaration of 'boost::date_time'
srcmongoutiltime_support.cpp(936): error C3083: 'winapi': the symbol to the left of a '::' must be a type
srcmongoutiltime_support.cpp(936): error C2039: 'file_time_to_microseconds': is not a member of 'boost::date_time'
C:boost_1_66_0boost/date_time/filetime_functions.hpp(28): note: see declaration of 'boost::date_time'
srcmongoutiltime_support.cpp(936): error C3861: 'file_time_to_microseconds': identifier not found
scons: *** [buildwin3264dbg_onmongoutiltime_support.obj] Error 2
scons: building terminated because of errors.
c++ mongodb boost boost-date-time
While building MongoDB with SCons and boost, I'm getting errors. Here's my command line:
C:mongo-cxx-driver>Scons --prefix=$HOME/mongo-client-lib --cpppath=C:boost_1_66_0 --libpath=C:boost_1_66_0stage64lib --dbg=on --64 install
Here are the error messages I'm getting:
srcmongoutiltime_support.cpp(904): error C2039: 'winapi': is not a member of 'boost::date_time'
C:boost_1_66_0boost/date_time/filetime_functions.hpp(28): note: see declaration of 'boost::date_time'
srcmongoutiltime_support.cpp(904): error C3083: 'winapi': the symbol to the left of a '::' must be a type
srcmongoutiltime_support.cpp(904): error C2039: 'file_time_to_microseconds': is not a member of 'boost::date_time'
C:boost_1_66_0boost/date_time/filetime_functions.hpp(28): note: see declaration of 'boost::date_time'
srcmongoutiltime_support.cpp(904): error C3861: 'file_time_to_microseconds': identifier not found
srcmongoutiltime_support.cpp(936): error C2039: 'winapi': is not a member of 'boost::date_time'
C:boost_1_66_0boost/date_time/filetime_functions.hpp(28): note: see declaration of 'boost::date_time'
srcmongoutiltime_support.cpp(936): error C3083: 'winapi': the symbol to the left of a '::' must be a type
srcmongoutiltime_support.cpp(936): error C2039: 'file_time_to_microseconds': is not a member of 'boost::date_time'
C:boost_1_66_0boost/date_time/filetime_functions.hpp(28): note: see declaration of 'boost::date_time'
srcmongoutiltime_support.cpp(936): error C3861: 'file_time_to_microseconds': identifier not found
scons: *** [buildwin3264dbg_onmongoutiltime_support.obj] Error 2
scons: building terminated because of errors.
c++ mongodb boost boost-date-time
c++ mongodb boost boost-date-time
edited Nov 11 at 2:00
HostileFork
24.6k775131
24.6k775131
asked Nov 11 at 1:21
Antonio SEO
858
858
The below answer is correct, but the good news is that we are working on fixing it. See my comment below.
– acm
Nov 13 at 21:50
add a comment |
The below answer is correct, but the good news is that we are working on fixing it. See my comment below.
– acm
Nov 13 at 21:50
The below answer is correct, but the good news is that we are working on fixing it. See my comment below.
– acm
Nov 13 at 21:50
The below answer is correct, but the good news is that we are working on fixing it. See my comment below.
– acm
Nov 13 at 21:50
add a comment |
1 Answer
1
active
oldest
votes
up vote
1
down vote
TL; DR - You can't expect to pick an arbitrary or current version of a library and build MongoDB with it; they snapshot their dependencies in their repo and there's no promises about building with versions besides those.
MongoDB has snapshots of its dependencies in the src/thirdparty directory. The version of boost snapshotted there is 1.60, which was released in 2015. You can see that in that version of boost, there is a winapi
namespace defined in boost/date_time/filetime_functions.hpp
.
However, you're trying to build against boost 1.66, which was released in December 2017. The release notes mention changes to date_time:
DateTime:
The library has been converted to use Boost.WinAPI as the abstraction layer for Windows SDK.
Fixed an integral overflow that could cause incorrect results when adding or subtracting many years from a date (see here).
That version of filetime_functions does not have this namespace inside of date_time, nor does the current 1.67 snapshot of filetime_functions.hpp.
Looking at the git blame log for src/mongo/util/time_support.cpp, it looks like the mongo code in question mentioning date_time::winapi
was added 3 years ago (before this winapi refactoring) and hasn't changed since.
We are actually right now in the process of upgrading our vendored boost dependency and encountered this issue. We will be fixing it soon.
– acm
Nov 13 at 21:50
add a comment |
1 Answer
1
active
oldest
votes
1 Answer
1
active
oldest
votes
active
oldest
votes
active
oldest
votes
up vote
1
down vote
TL; DR - You can't expect to pick an arbitrary or current version of a library and build MongoDB with it; they snapshot their dependencies in their repo and there's no promises about building with versions besides those.
MongoDB has snapshots of its dependencies in the src/thirdparty directory. The version of boost snapshotted there is 1.60, which was released in 2015. You can see that in that version of boost, there is a winapi
namespace defined in boost/date_time/filetime_functions.hpp
.
However, you're trying to build against boost 1.66, which was released in December 2017. The release notes mention changes to date_time:
DateTime:
The library has been converted to use Boost.WinAPI as the abstraction layer for Windows SDK.
Fixed an integral overflow that could cause incorrect results when adding or subtracting many years from a date (see here).
That version of filetime_functions does not have this namespace inside of date_time, nor does the current 1.67 snapshot of filetime_functions.hpp.
Looking at the git blame log for src/mongo/util/time_support.cpp, it looks like the mongo code in question mentioning date_time::winapi
was added 3 years ago (before this winapi refactoring) and hasn't changed since.
We are actually right now in the process of upgrading our vendored boost dependency and encountered this issue. We will be fixing it soon.
– acm
Nov 13 at 21:50
add a comment |
up vote
1
down vote
TL; DR - You can't expect to pick an arbitrary or current version of a library and build MongoDB with it; they snapshot their dependencies in their repo and there's no promises about building with versions besides those.
MongoDB has snapshots of its dependencies in the src/thirdparty directory. The version of boost snapshotted there is 1.60, which was released in 2015. You can see that in that version of boost, there is a winapi
namespace defined in boost/date_time/filetime_functions.hpp
.
However, you're trying to build against boost 1.66, which was released in December 2017. The release notes mention changes to date_time:
DateTime:
The library has been converted to use Boost.WinAPI as the abstraction layer for Windows SDK.
Fixed an integral overflow that could cause incorrect results when adding or subtracting many years from a date (see here).
That version of filetime_functions does not have this namespace inside of date_time, nor does the current 1.67 snapshot of filetime_functions.hpp.
Looking at the git blame log for src/mongo/util/time_support.cpp, it looks like the mongo code in question mentioning date_time::winapi
was added 3 years ago (before this winapi refactoring) and hasn't changed since.
We are actually right now in the process of upgrading our vendored boost dependency and encountered this issue. We will be fixing it soon.
– acm
Nov 13 at 21:50
add a comment |
up vote
1
down vote
up vote
1
down vote
TL; DR - You can't expect to pick an arbitrary or current version of a library and build MongoDB with it; they snapshot their dependencies in their repo and there's no promises about building with versions besides those.
MongoDB has snapshots of its dependencies in the src/thirdparty directory. The version of boost snapshotted there is 1.60, which was released in 2015. You can see that in that version of boost, there is a winapi
namespace defined in boost/date_time/filetime_functions.hpp
.
However, you're trying to build against boost 1.66, which was released in December 2017. The release notes mention changes to date_time:
DateTime:
The library has been converted to use Boost.WinAPI as the abstraction layer for Windows SDK.
Fixed an integral overflow that could cause incorrect results when adding or subtracting many years from a date (see here).
That version of filetime_functions does not have this namespace inside of date_time, nor does the current 1.67 snapshot of filetime_functions.hpp.
Looking at the git blame log for src/mongo/util/time_support.cpp, it looks like the mongo code in question mentioning date_time::winapi
was added 3 years ago (before this winapi refactoring) and hasn't changed since.
TL; DR - You can't expect to pick an arbitrary or current version of a library and build MongoDB with it; they snapshot their dependencies in their repo and there's no promises about building with versions besides those.
MongoDB has snapshots of its dependencies in the src/thirdparty directory. The version of boost snapshotted there is 1.60, which was released in 2015. You can see that in that version of boost, there is a winapi
namespace defined in boost/date_time/filetime_functions.hpp
.
However, you're trying to build against boost 1.66, which was released in December 2017. The release notes mention changes to date_time:
DateTime:
The library has been converted to use Boost.WinAPI as the abstraction layer for Windows SDK.
Fixed an integral overflow that could cause incorrect results when adding or subtracting many years from a date (see here).
That version of filetime_functions does not have this namespace inside of date_time, nor does the current 1.67 snapshot of filetime_functions.hpp.
Looking at the git blame log for src/mongo/util/time_support.cpp, it looks like the mongo code in question mentioning date_time::winapi
was added 3 years ago (before this winapi refactoring) and hasn't changed since.
answered Nov 11 at 2:59
HostileFork
24.6k775131
24.6k775131
We are actually right now in the process of upgrading our vendored boost dependency and encountered this issue. We will be fixing it soon.
– acm
Nov 13 at 21:50
add a comment |
We are actually right now in the process of upgrading our vendored boost dependency and encountered this issue. We will be fixing it soon.
– acm
Nov 13 at 21:50
We are actually right now in the process of upgrading our vendored boost dependency and encountered this issue. We will be fixing it soon.
– acm
Nov 13 at 21:50
We are actually right now in the process of upgrading our vendored boost dependency and encountered this issue. We will be fixing it soon.
– acm
Nov 13 at 21:50
add a comment |
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function ()
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53245024%2fboostdate-time-error-while-building-mongodb-winapi-is-not-member%23new-answer', 'question_page');
);
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
The below answer is correct, but the good news is that we are working on fixing it. See my comment below.
– acm
Nov 13 at 21:50