文章 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,其他参数的位置经我测试没有特殊要求。