[英]static boost.test library and dynamic boost.test library
我有一個與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”中的致命錯誤:std :: runtime_error:在框架初始化之前我們不能用e測試工具有什么想法嗎? 謝謝
確保定義BOOST_TEST_DYN_LINK:
如果您選擇將測試模塊與預構建的動態庫鏈接,則此用法稱為UTF的動態庫變體。 此變體要求您在makefile中或在包含boost / test / unit_test.hpp標頭之前定義標志BOOST_TEST_DYN_LINK 。
UTF的動態庫變體
#define BOOST_TEST_DYN_LINK
#include <boost/test/unit_test.hpp>
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.