I'm trying to link my "universal binary" program statically with both
Boost and libstdc++-static.a to make the distribution easier, because,
as I understand, /usr/lib/libstdc++.6.dylib isn't always there,
especially, in versions prior to OSX-10.4
I can build Boost apparently successfully, but linking the regex
example statically with libstdc++ causes errors. Perhaps someone here
could point out what I'm doing wrong (if anything).
Here's what I did to build "universal binary" Boost and compile the
example (Btw, the documentation could use some clarity about the
recipe):
(1) Make sure "g++ --version" says i686-apple-darwin8-g++-4.0.1
(symlinks and PATH adjustments to avoid v3.3)
(2) ../../bjam --prefix=~/local --build-dir=~/boost_build
toolset=darwin link=static \
threading=multi architecture=combined stage install
(I also tried adding runtime-link=static with similar results, see below)
(3) g++ -static-libgcc -I ~/local/include/boost-1_38 example.cpp \
-o example /usr/lib/libstdc++-static.a ~/local/lib/libboost_regex-xgcc40-mt.a
(I tried skipping /usr/lib/libstdc++-static.a, in which case the
binary builds, but is linked with
/usr/lib/libstdc++.6.dylib)
The errors I get here take up many pages and start like this:
/usr/libexec/gcc/i686-apple-darwin8/4.0.1/ld: warning multiple
definitions of symbol std::codecvt