Hi There seems to be bug with boost 1.36.0 and the bjam 03.1.16, as if you use link=static,shared then the shared libraries overwrite the static versions. When I include libboost_thread-mt.a in my project build with the above command, my application requires the libboost_thread-mt.dylib. But if I only use link=static and include libboost_thread-mt.a, then it no longer requires libboost_thread-mt.dylib. Should bjam not produce libraries that have different names for the static and shared libraries? Regards Katherine Maguire Photographic Galleries
From: rush@manbert.com To: boost-users@lists.boost.org Date: Mon, 6 Oct 2008 12:52:15 -0700 CC: sent-mail@emarcus.org Subject: Re: [Boost-users] It is possible to build a static version of boost for the MACOS
On Oct 6, 2008, at 12:07 PM, Mat Marcus wrote:
On Mon, Oct 6, 2008 at 9:47 AM, Rush Manbert
wrote: On Oct 4, 2008, at 3:08 PM, Sachin Garg wrote:
On Sat, Oct 4, 2008 at 1:11 AM, Rush Manbert
wrote: On Oct 3, 2008, at 6:30 AM, kittymaguire wrote:
When I put -static into the linker options, I get a lot of linker errors. So I don't think a static version is possible on the MAC.
How can I built each library that I need into a framework for the MAC?
Vladimir Prus-3 wrote: > > kittymaguire wrote: > >> >> Hi >> >> I have tried to build the boost libraries on the MacOS as a >> static >> library >> by giving bjam the --buid_type=static but it still built the >> dynamic >> version >> of the libraries. >
Here is a bjam command line that builds the 32 bit libraries, debug and release versions, both static and dynamic, targeted to Os X 10.4, with 10.4 as the minimum supported rev. It also installs them. You will need to adjust the path stuff to use it.
bjam debug release toolset=darwin address-model=32 architecture=combined threading=multi link=shared,static macosx-version=10.4 macosx-version-min=10.4 --layout=system --prefix=/tmp/boostbuild_20081003_104356/32 --exec-prefix=/tmp/boostbuild_20081003_104356/32 --builddir=./../buildProductsMac/boost install
Here's the equivalent for 64 bit libaries.
bjam debug release toolset=darwin address-model=64 architecture=combined threading=multi link=shared,static macosx-version=10.4 macosx-version-min=10.4 --layout=system --prefix=/tmp/boostbuild_20081003_104356/64 --exec-prefix=/tmp/boostbuild_20081003_104356/64 --builddir=./../buildProductsMac/boost install
Why the need to specify OsX version? (I am new to OsX development) _______________________________________________
By default, you get targeted to the current version, which is 10.5. If you need to be compatible with previous versions, you need to specify. I honestly don't quite know what the difference is between macosx- version and macosx-version-min, because I'm not the one who worked out what command line we needed. If you use Xcode, you will see that you can specify which SDK version you target there as well, to support backward compatibility.
macosx-version: which version of the SDK to use macosx-version-min: oldest OS version on which executables will be deployed
I'm not sure why the suggestion was made to set prefix and exec-prefix
Thanks, and sorry, I just threw out the entire command line that we use, expecting interested parties to edit for their circumstances. Note that this command line also builds dynamic and static libs, so you need to change that too if static is all you want. You also might not want --layout=system...
- Rush
_______________________________________________ Boost-users mailing list Boost-users@lists.boost.org http://lists.boost.org/mailman/listinfo.cgi/boost-users
_________________________________________________________________ Express yourself instantly with MSN Messenger! Download today it's FREE! http://messenger.msn.click-url.com/go/onm00200471ave/direct/01/