文章 C++ Unit Testing With Boost.Test 中用了动态链接的方法,但没有提及静态链接的 方式怎么使用,自己尝试了一下,将一些需要注意地方记录在这。
静态链接的使用大体上的动态链接一样,只是不需要宏定义:
1  | #define BOOST_TEST_DYN_LINK  | 
还需要注意一下编译时的参数项,和参数的顺序。以测试 STL 函数 any_of 为例:
1  | // #define BOOST_TEST_DYN_LINK  | 
使用以下命令进行编译:
1  | clang++ -std=c++11 -static demo.cc -lboost_unit_test_framework  | 
这里使用了 clang++ 进行编译,应该可以直接替换为 g++ 而没有影响。必要的参数有
-static 和 -lboost_unit_test_framework ,因为使用了 C++11 的特性所以加了参数
-stc=c++11 。需要注意文件名 demo.cc 要在参数 -lboost_unit_test_framework
之前,原因请参见文末链接1, 2,其他参数的位置经我测试没有特殊要求。