[SERVER-24010] error C2248: 'mongo::BSONObjBuilder::BSONObjBuilder': cannot access private member declared in class 'mongo::BSONObjBuilder' Created: 02/May/16 Updated: 09/May/16 Resolved: 09/May/16 |
|
| Status: | Closed |
| Project: | Core Server |
| Component/s: | Build |
| Affects Version/s: | 3.2.5 |
| Fix Version/s: | None |
| Type: | Question | Priority: | Major - P3 |
| Reporter: | George Thompson | Assignee: | Andrew Morrow (Inactive) |
| Resolution: | Done | Votes: | 0 |
| Labels: | None | ||
| Remaining Estimate: | Not Specified | ||
| Time Spent: | Not Specified | ||
| Original Estimate: | Not Specified | ||
| Backwards Compatibility: | Fully Compatible |
| Sprint: | Platforms 14 (05/13/16) |
| Participants: |
| Description |
|
Windows 10 Building from scource. Built scons via c:\python27\python.exe setup.py install. Developer Command Prompt and ran: %ProgramFiles(x86)%\Microsoft Visual Studio 12.0\vc\bin\amd64\vcvars64.bat scons --64bit gave me this error: SCons Error: no such option: --64bit So, "scons all" gave me this: scons all |
| Comments |
| Comment by George Thompson [ 09/May/16 ] |
|
Thank you for all your help Andrew. |
| Comment by Andrew Morrow (Inactive) [ 09/May/16 ] |
|
therefore - I'd like to close this ticket, it doesn't really belong in the SERVER project. If you need further help, please either:
|
| Comment by Andrew Morrow (Inactive) [ 09/May/16 ] |
|
Great - I really do think that is the right choice, but I would also understand if you felt that you needed to stay with the older driver. To answer your questions:
Finally, one comment - we do currently consider the C++11 driver to be stable as of its 3.0.0 release. We are however aware of bugs that will require us to make some small API changes in the 3.0.x release series. For the most part, these should be extremely minor, but we are not committing to not breaking API in the 3.0.x series. We are planning a 3.1.x release series this summer that will focus on build system improvements and prepare the way for a future declaration of ABI stability. Finally, we will need to introduce support for MongoDB 3.4 later this year. We hope to do that for a C++11 driver 3.2.x release series, at which point we will declare both API and ABI stability for the driver. I also recommend that you look at the C++11 driver roadmap to understand what issues are currently known to exist and what changes we have planned:
|
| Comment by George Thompson [ 09/May/16 ] |
|
Andrew Marrow – Thanks for the overview. I want to use the newest C++11 driver and intend to rewrite all of our 2.2 code and understand the risk of doing development while you are also developing the driver. My two questions: Should I be using the master branch of the mongoDB code and use MS VS 2015 and not use the r3.2.5 as it only uses MS VS 2013 to compile? I.e., is the C++11 driver not for r3.2.5 but for the master branch, r3.3.5? And are there Windows specific instructions for installing the C++11 driver? https://github.com/mongodb/mongo-cxx-driver/wiki/Quickstart-Guide-%28New-Driver%29 appears to be unix specific. The c driver instructions at https://api.mongodb.com/c/current/installing.html#building-windows includes windows-specific instructions which worked well. |
| Comment by Andrew Morrow (Inactive) [ 09/May/16 ] |
|
I think you will find the following blogs post helpful to understand what has happened with the C++ driver since you last used it: http://blog.mongodb.org/post/78478565493/upcoming-changes-to-the-mongodb-cpp-driver The short version is that the C++ driver no longer builds from the server sources as of MongoDB 2.6, and is instead hosted here: https://github.com/mongodb/mongo-cxx-driver There are three branches:
So, you have some choices. If you have code that worked with the MongoDB 2.2 vintage C++ driver, the 26compat driver is most likely to just work. But, it receives effectively no real maintenance or testing. Since you are likely to need to make changes to your code anyway, it might make sense to go to the legacy branch instead. The only major incompatibility is that the legacy driver does not offer a connection pool. However, both of these choices set you up for future problems, since we will at some point in the not too distant future start the process to deprecate and then EOL both the 26compat and legacy drivers. If moving to C++11 is an option for you, and you can undertake a re-write, the C++11 driver is a much improved environment. However, it is also the newest C++ driver and is under active development. Finally, you can consider using the straight C driver if all of the above choices are unpalatable. Please let me know if there are any questions I can answer to help clarify. |
| Comment by George Thompson [ 08/May/16 ] |
|
Mark – I want to use the new c++ 11 driver. According to: https://github.com/mongodb/mongo-cxx-driver/wiki/Quickstart-Guide-%28New-Driver%29 VC2015 Update 1+ is required. Is that because 3.2.x releases don't use the new c++ driver? I.e., I should switch to master to use the new c++ driver (and therefore reinstall VS2015 and install the most recent development mongoDB)? Are there windows specific build and installation instructions for the new c++ driver? https://github.com/mongodb/mongo-cxx-driver/wiki/Quickstart-Guide-%28New-Driver%29 appears to be unix specific. The c driver instructions at https://api.mongodb.com/c/current/installing.html#building-windows include windows-specific instructions which worked. I have a ton of two+ year old mongoDB 2.2.0 code to rewrite for the new API. This is non-production code as we put it on the back burner after hitting a serious mongoDB bug that has been subsequently fixed. |
| Comment by George Thompson [ 03/May/16 ] |
|
Thank you Mark for the quick response. I installed VS 2013 Update 5 and things are compiling. |
| Comment by Mark Benvenuto [ 02/May/16 ] |
|
Building 3.2.x releases requires VS 2013 Update 4 at this time. We recently moved master to VS 2015 Update 2. We have not decided whether to support VS 2015 Update 2 on 3.2.x as there are several incompatibilities. |