building boost with only one set of libraries
I have spent so much time to find how to build boost with only one combination of release/debug, multithreading, static/shared... that I want to record the method in the archive for other potential users. By default boost is build 16 times which corresponds to all combinations of: - release/debug - multithreading on/off - static/shared link - runtime static/shared link It takes ages to compile and we get roughly 1 giga-bytes of data. In general you need only one combination of these options but it is not very well documented how to set these options. Here is a simple mean: unix like environnement: $ configure --prefix=path_to_the_intallation_directory edit Makefile: BJAM_CONFIG=link=static threading=multi runtime-link=shared --layout=system LIBS=release $ make install nocygwin environnement (build cygwin independant library from cygwin, can be used in CodeBlocks or with g++ -no-cygwin): build bjam from cygwin (boost-jam-3.1.14.tgz): $ chmod 755 build.bat; ./build.bat gcc-nocygwin build boost: $ full_installation_path_of_bjam/bjam link=static threading=multi runtime-link=shared --toolset=gcc-nocygwin --prefix="windows_path_to_the_intallation_directory" --layout=system release install F. Bron Avis : Ce message et toute pièce jointe sont la propriété d'Alcan et sont destinés seulement aux personnes ou à l'entité à qui le message est adressé. Si vous avez reçu ce message par erreur, veuillez le détruire et en aviser l'expéditeur par courriel. Si vous n'êtes pas le destinataire du message, vous n'êtes pas autorisé à utiliser, à copier ou à divulguer le contenu du message ou ses pièces jointes en tout ou en partie. Notice: This message and any attachments are the property of Alcan and are intended solely for the named recipients or entity to whom this message is addressed. If you have received this message in error please inform the sender via e-mail and destroy the message. If you are not the intended recipient you are not allowed to use, copy or disclose the contents or attachments in whole or in part.
On 21/06/07, frederic.bron@alcan.com
I have spent so much time to find how to build boost with only one combination of release/debug, multithreading, static/shared... that I want to record the method in the archive for other potential users. By default boost is build 16 times which corresponds to all combinations of: - release/debug - multithreading on/off - static/shared link - runtime static/shared link It takes ages to compile and we get roughly 1 giga-bytes of data.
In general you need only one combination of these options but it is not very well documented how to set these options.
My understanding from a Microsoft runtime perspective is that if you link with a different runtime version of the library, there is a possibility that object created within one runtime heap may potentially be destroyed in another runtime heap causing application to fail. The release and debug heap is different, so are those between single and multithreaded. Anyone know more about this different runtime heap? Regards
frederic.bron@alcan.com writes:
I have spent so much time to find how to build boost with only one combinat= ion of release/debug, multithreading, static/shared... that I want to recor= d the method in the archive for other potential users.
Thank you! I was just contemplating this problem today. I have not tried your method, but I'm sure it will come in handy. My sort-term solution to eliminating DSO's was to run $ find ${myboostprefix}/lib --name '*.so' --exec rm {} \; But that of course didn't help with the long boost build time. Now if I could just figure out how to use GNU autotools/libtool to link specifically against the boost static libraries instead of the dynamic ones...
participants (3)
-
Bryan Green
-
frederic.bron@alcan.com
-
Nicholas Yue