簡體   English   中英

static boost.test庫和動態boost.test庫

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM