
I'm having trouble getting programs using boost_unit_test_framework to link. The fundamental issue is that trying to link something like this: g++ -fPIC -o algorithms_test algorithms_test.o - lboost_unit_test_framework dies with a linker error: /usr/bin/ld: Undefined symbols: _main collect2: ld returned 1 exit status The issue, of course, is that "main" lives within the library boost_unit_test_framework, but linkers don't look into libraries (either static or dynamic) to find main. I suspect this is also the reason for the FAQ item on the test library page (http:// www.boost.org/libs/test/doc/faq.html#Item_9), which says that Boost Test components cannot be compiled as DLL, but perhaps there are other issues there. Our tests pass because BBv2 decides to put the archive file on the link line: g++ -fPIC -o algorithms_test algorithms_test.o libboost_unit_test_framework.a For some reason, this non-standard practice seems to work... but I can't imagine it's truly portable, and it forces users of boost_unit_test_framework into statically linking in a non- traditional way. Why must main() be in a library? It seems a trivial matter to fix. - Doug