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

boost::recursive_mutex и boost::lock_guard, кажется, используют boost_thread-bcb-mt-1_39.dll в C++ Builder 2010. Я вижу, что есть и статическая версия - boost_thread-bcb-mt-1_39.lib сильный>.

Мой код выглядит примерно так:

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

Однако, если я установлю для параметра компиляции значение Release и для параметра Dynamic RTL значение False, все, что я получу, это Смешивание библиотеки dll boost со статической средой выполнения — это действительно плохо. идея.... Возврат динамического RTL в True компилирует, но тогда требуются дополнительные библиотеки DLL — cc32100mt.dll и boost_thread-bcb-mt-1_39.dll.

Есть ли способ скомпилировать его статически в одном exe? В конце концов, файл LIB предоставляется, это должно быть возможно. Это проблема с этой версией C++ Builder или Boost?


person Coder12345    schedule 13.12.2012    source источник


Ответы (1)


Мне нужно было определить в заголовочном файле:

#define BOOST_THREAD_USE_LIB

прямо перед:

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

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

person Coder12345    schedule 17.12.2012