-
Type: Task
-
Resolution: Duplicate
-
Priority: Major - P3
-
None
-
Affects Version/s: 3.4.0
-
Component/s: Build
-
None
-
Environment:Ubuntu 18.04.1 LTS
gcc version 7.4.0
Hi.
I'm trying to build mongocxx version 3.4.0 with C++17 enabled but there is an error during compilation.
I'm using libmongoc: https://github.com/mongodb/mongo-c-driver/releases/download/1.13.0/mongo-c-driver-1.13.0.tar.gz
I've used following command for cmake:
cmake -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=/usr/local -DCMAKE_CXX_STANDARD=17 .. -- The CXX compiler identification is GNU 7.4.0 -- Check for working CXX compiler: /usr/bin/c++ -- Check for working CXX compiler: /usr/bin/c++ -- works -- Detecting CXX compiler ABI info -- Detecting CXX compiler ABI info - done -- Detecting CXX compile features -- Detecting CXX compile features - done -- The C compiler identification is GNU 7.4.0 -- Check for working C compiler: /usr/bin/cc -- Check for working C compiler: /usr/bin/cc -- works -- Detecting C compiler ABI info -- Detecting C compiler ABI info - done -- Detecting C compile features -- Detecting C compile features - done -- Auto-configuring bsoncxx to use C++17 std library polyfills since C++17 is active and user didn't specify otherwise -- Performing Test COMPILER_HAS_HIDDEN_VISIBILITY -- Performing Test COMPILER_HAS_HIDDEN_VISIBILITY - Success -- Performing Test COMPILER_HAS_HIDDEN_INLINE_VISIBILITY -- Performing Test COMPILER_HAS_HIDDEN_INLINE_VISIBILITY - Success -- Looking for C++ include pthread.h -- Looking for C++ include pthread.h - found -- Looking for pthread_create -- Looking for pthread_create - not found -- Check if compiler accepts -pthread -- Check if compiler accepts -pthread - yes -- Found Threads: TRUE -- Configuring done -- Generating done -- Build files have been written to: /home/rmilczar/work/gameserver/env_files/mongo-cxx-driver-r3.4.0/build
Scanning dependencies of target mongocxx_mocked [ 14%] Building CXX object src/mongocxx/CMakeFiles/mongocxx_mocked.dir/bulk_write.cpp.o In file included from /home/rmilczar/work/gameserver/env_files/mongo-cxx-driver-r3.4.0/src/mongocxx/private/client_session.hh:24:0, from /home/rmilczar/work/gameserver/env_files/mongo-cxx-driver-r3.4.0/src/mongocxx/bulk_write.cpp:25: /home/rmilczar/work/gameserver/env_files/mongo-cxx-driver-r3.4.0/src/mongocxx/options/private/transaction.hh: In member function ‘std::optional<mongocxx::v_noabi::read_concern> mongocxx::v_noabi::options::transa ction::impl::read_concern() const’: /home/rmilczar/work/gameserver/env_files/mongo-cxx-driver-r3.4.0/src/mongocxx/options/private/transaction.hh:64:88: error: could not convert ‘{std::make_unique(_Args&& ...) [with _Tp = mongocxx::v_noabi::read_co ncern::impl; _Args = {_mongoc_read_concern_t*}; typename std::_MakeUniq<_Tp>::__single_object = std::unique_ptr<mongocxx::v_noabi::read_concern::impl>]()}’ from ‘<brace-enclosed initializer list>’ to ‘std::optio nal<mongocxx::v_noabi::read_concern>’ return {stdx::make_unique<read_concern::impl>(libmongoc::read_concern_copy(rc))}; ^ /home/rmilczar/work/gameserver/env_files/mongo-cxx-driver-r3.4.0/src/mongocxx/options/private/transaction.hh: In member function ‘std::optional<mongocxx::v_noabi::write_concern> mongocxx::v_noabi::options::trans action::impl::write_concern() const’: /home/rmilczar/work/gameserver/env_files/mongo-cxx-driver-r3.4.0/src/mongocxx/options/private/transaction.hh:77:90: error: could not convert ‘{std::make_unique(_Args&& ...) [with _Tp = mongocxx::v_noabi::write_c oncern::impl; _Args = {_mongoc_write_concern_t*}; typename std::_MakeUniq<_Tp>::__single_object = std::unique_ptr<mongocxx::v_noabi::write_concern::impl>]()}’ from ‘<brace-enclosed initializer list>’ to ‘std::op tional<mongocxx::v_noabi::write_concern>’ return {stdx::make_unique<write_concern::impl>(libmongoc::write_concern_copy(wc))}; ^ /home/rmilczar/work/gameserver/env_files/mongo-cxx-driver-r3.4.0/src/mongocxx/options/private/transaction.hh: In member function ‘std::optional<mongocxx::v_noabi::read_preference> mongocxx::v_noabi::options::tra nsaction::impl::read_preference() const’: /home/rmilczar/work/gameserver/env_files/mongo-cxx-driver-r3.4.0/src/mongocxx/options/private/transaction.hh:90:89: error: could not convert ‘{std::make_unique(_Args&& ...) [with _Tp = mongocxx::v_noabi::read_pr eference::impl; _Args = {_mongoc_read_prefs_t*}; typename std::_MakeUniq<_Tp>::__single_object = std::unique_ptr<mongocxx::v_noabi::read_preference::impl>]()}’ from ‘<brace-enclosed initializer list>’ to ‘std::o ptional<mongocxx::v_noabi::read_preference>’ return {stdx::make_unique<read_preference::impl>(libmongoc::read_prefs_copy(rp))}; ^ src/mongocxx/CMakeFiles/mongocxx_mocked.dir/build.make:62: recipe for target 'src/mongocxx/CMakeFiles/mongocxx_mocked.dir/bulk_write.cpp.o' failed make[2]: *** [src/mongocxx/CMakeFiles/mongocxx_mocked.dir/bulk_write.cpp.o] Error 1 CMakeFiles/Makefile2:627: recipe for target 'src/mongocxx/CMakeFiles/mongocxx_mocked.dir/all' failed make[1]: *** [src/mongocxx/CMakeFiles/mongocxx_mocked.dir/all] Error 2 Makefile:140: recipe for target 'all' failed make: *** [all] Error 2
Compiling without DCMAKE_CXX_STANDARD=17 works correctly.
- duplicates
-
CXX-1688 MongoDB CXX driver does not compile with standard polyfill.
- Closed