Note that there are some explanatory texts on larger screens.

plurals
  1. POManaging external libraries (e.g. boost) during transition to C++11
    primarykey
    data
    text
    <p>I want to move my current project to C++11. The code all compiles using clang++ -std=c++0x. That is the easy part :-) . The difficult part is dealing with external libraries. One cannot rely on linking one's C++11 objects with external libraries that were not compiled with c++11 (see <a href="http://gcc.gnu.org/wiki/Cxx11AbiCompatibility" rel="nofollow noreferrer">http://gcc.gnu.org/wiki/Cxx11AbiCompatibility</a>). Boost, for example, certainly needs re-building (<a href="https://stackoverflow.com/questions/8454329/why-cant-clang-with-libc-in-c0x-mode-link-this-boostprogram-options-examp">Why can&#39;t clang with libc++ in c++0x mode link this boost::program_options example?</a>). I have source for all of the external libraries I use, so I can (with some pain) theoretically re-build these libs with C++11. However, that still leaves me with some problems:</p> <p><strong>Developing in a mixed C++03/C++11 environment:</strong> I have some old projects using C++03 that require occasional maintenance. Of course, I'll want to link these with existing versions of external libraries. But for my current (and new) projects, I want to link with my re-built C++11 versions of the libraries. How do I organise my development environments (currently Ubuntu 12.04 and Mac OS X 10.7) to cope with this?</p> <p>I'm assuming that this problem will be faced by many developers. It's not going to go away, but I haven't found a recommended and generally approved solution.</p> <p><strong>Deployment:</strong> Currently, I deploy to Ubuntu 12.04 LTS servers in the cloud. Experience leads one to depend (where possible) on the standard packages (e.g. libboost) available with the linux distribution. If I move my current project to c++11, my understanding is that I will have to build my own versions of the external libraries I use. My guess is that at some point this will change, and their will be 'standard' versions of library packages with C++11 compatibility. Does anyone have any idea when one might expect that to happen? And presumably this will also require a standard solution to the problem mentioned above - concurrent existence of C++03 libs and C++11 libs on the same platform.</p> <p>I am hoping that I've missed something basic so that these perceived problems disappear in a puff of appropriate information! Am I trying to move to C++11 too soon?</p> <p>Update(2013-09-11): Related discussion for macports: <a href="https://lists.macosforge.org/pipermail/macports-users/2013-September/033383.html" rel="nofollow noreferrer">https://lists.macosforge.org/pipermail/macports-users/2013-September/033383.html</a></p>
    singulars
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    plurals
    1. This table or related slice is empty.
    1. This table or related slice is empty.
 

Querying!

 
Guidance

SQuiL has stopped working due to an internal error.

If you are curious you may find further information in the browser console, which is accessible through the devtools (F12).

Reload