首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >静态boost.test库和动态boost.test库

静态boost.test库和动态boost.test库
EN

Stack Overflow用户
提问于 2014-02-11 16:20:17
回答 1查看 611关注 0票数 3

我有一个与BOOST.Test框架相关的问题,并以下面的例子来说明我的问题:我构建了一个包含所有测试类的TestClass库,这个库可以是静态的,也可以是动态的。该库中的一个典型功能如下:

代码语言:javascript
复制
__declspec(dllexport) HelloWorld()
{

        int i= 2;
        int j= 1;
            BOOST_CHECK(i == j);
        BOOST_CHECK_EQUAL(i,j);
}

然后,我设置了一个可执行程序(例如main.cpp)来调用这个库:

代码语言:javascript
复制
test_suite* init_unit_test_suite( int argc, char* argv[] ) 
{ 
    framework::master_test_suite().add( BOOST_TEST_CASE( &HelloWorld ) ); 

    return 0; 
} 

对于TestClass库和可执行程序,它们都需要BOOST.Test库。我构建的这个BOOST.Test库是静态的。然后我发现:

  • 如果TestClass库是静态的,那么一切都进行得很顺利。
  • 但是,如果TestClass库是动态的,那么我收到以下错误: 未知位置(0):“HelloWorld”中的致命错误: std::runtime_error:我们不能在框架初始化之前使用测试工具吗?谢谢
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-02-12 09:19:12

确保定义了BOOST_TEST_DYN_LINK:

如果选择将测试模块与预先构建的动态库链接起来,这种用法称为UTF的动态库变体。此变体要求您在makefile中或在标头boost/test/unit_test.hpp包含.UTF的动态库变体之前定义标志boost/test/unit_test.hpp

代码语言:javascript
复制
#define BOOST_TEST_DYN_LINK
#include <boost/test/unit_test.hpp>
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/21707259

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档