Mac OS X で boost::test するときは <code>#define BOOST_TEST_DYN_LINK</code> が必須
Mac OS X はスタティック リンクをサポートしていないため,boost::test するときは #define BOOST_TEST_DYN_LINK
が必須のようです.
経緯
boost.test をちょっと試そうと思っていくつかちょっとだけ実験してた.
参考にしたのはとりあえずここらへん.
で,スタティック リンクでも試そうと
#define BOOST_TEST_DYN_LINK
を消して,
% g++ test.cpp -lboost_unit_test_framework test.cpp -static
としたのだけど,
ld: library not found for -lcrt0.o collect2: ld returned 1 exit status
というエラーがでてコンパルができなかった.
ちょっと調べてみると,以下のようなことが公式に宣言されてた.
Mac OS X では、ユーザバイナリの静的なリンクはサポートされていません。
Mac OS X で -lcrt0.o
でエラーがでたら,素直にダイナミック リンクにしてあげましょう.