Можно ли статически скомпилировать boost :: recursive_mutex в C ++ Builder?

boost::recursive_mutex а также boost::lock_guard похоже использовать boost_thread-BCB-мт-1_39.dll в C ++ Builder 2010. Я вижу, что есть также статическая версия — boost_thread-BCB-мт-1_39.lib.

Мой код примерно такой:

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

Однако, если я установлю опцию компиляции в Релиз и установите параметр динамического RTL в Ложь все, что я получаю, это Смешивать библиотеку dll boost со статической средой выполнения — действительно плохая идея …. Возвращение динамического RTL к Правда компилируется, но тогда ему нужны дополнительные DLL — cc32100mt.dll а также boost_thread-BCB-мт-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>

После этого он компилируется без проблем.

1

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]