是否可以在C ++ Builder中静态编译boost :: recursive_mutex

时间:2012-12-13 13:17:44

标签: c++ boost c++builder boost-thread c++builder-2010

boost::recursive_mutexboost::lock_guard似乎在C ++ Builder 2010中使用 boost_thread-bcb-mt-1_39.dll 。我看到还有静态版本 - boost_thread-BCB-MT-1_39.lib

我的代码是这样的:

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

但是,如果我将编译选项设置为发布并将动态RTL选项设置为 False ,我得到的是将dll boost库与静态运行时混合使用一个非常糟糕的主意...... 。将动态RTL返回到 True 进行编译,但是它需要额外的DLL&#strong; cc32100mt.dll 和 boost_thread-bcb-mt-1_39.dll

有没有办法在单个exe中静态编译它?毕竟,提供了LIB文件,它应该是可能的。这个版本的C ++ Builder或Boost是一个问题吗?

1 个答案:

答案 0 :(得分:1)

我需要的是在头文件中定义:

#define BOOST_THREAD_USE_LIB

之前:

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

之后它编译没有任何问题。