2012-12-13 48 views
1

boost::recursive_mutexboost::lock_guard似乎使用boost_thread-BCB-MT-1_39.dll在C++ Builder的2010年。我看到,也有靜態的版本 - boost_thread- bcb-mt-1_39.lib是否有可能在C++ Builder的靜態編譯的boost :: recursive_mutex

我的代碼是這樣的:

boost::recursive_mutex mylock; 
//... 
boost::lock_guard<boost::recursive_mutex> lock(mylock); 

但是,如果設置了編譯選項發佈並設置動態RTL選項我得到的是混合有一個dll boost庫靜態運行時間是一個非常糟糕的主意......。返回動態RTL到編譯但它需要額外的DLL - cc32100mt.dllboost_thread-bcb-mt-1_39.dll

有沒有辦法在單個exe中靜態編譯它?畢竟,提供了LIB文件,它應該是可能的。這是C++ Builder或Boost版本的問題嗎?

回答

1

我需要的是在頭文件中定義:

#define BOOST_THREAD_USE_LIB 

權之前:

#include <boost/thread/recursive_mutex.hpp> 
#include <boost/thread/locks.hpp> 

然後它編譯沒有任何問題之後。

相關問題