gpt4 book ai didi

c++ - 静态 boost.test 库和动态 boost.test 库

转载 作者:太空狗 更新时间:2023-10-29 21:43:53 24 4
gpt4 key购买 nike

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

__declspec(dllexport) HelloWorld()
{

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

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

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”中的 fatal error :std::runtime_error:我们不能框架初始化前的测试工具有任何想法吗?谢谢

最佳答案

确保您定义了 BOOST_TEST_DYN_LINK:

If you opt to link a test module with the prebuilt dynamic library, this usage is called the dynamic library variant of the UTF. This variant requires you to define the flag BOOST_TEST_DYN_LINK either in a makefile or before the header boost/test/unit_test.hpp inclusion.
The dynamic library variant of the UTF

#define BOOST_TEST_DYN_LINK
#include <boost/test/unit_test.hpp>

关于c++ - 静态 boost.test 库和动态 boost.test 库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21707259/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com