| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > С/С++: Кроссплатформенное программирование, Qt/Gtk+/wxWidgets > Проблема с boost::this_thread::interruption_point |
| Автор: DTF 26.3.2011, 13:07 | ||
| Здрасьте все! Столкнудся я со странной, на мой взгляд, проблемой, про которую ничего не нашел в рунете, а буржнет не особо копал, т.к. не силен в английском. Суть такова: Есть MSVS 2003, есть установленный Boost, и есть моя программа, которая пытается использовать бустовскую многопоточность. В опциях компилятора прописан путь к директории с бустовскими хедерами - $(BOOST) В опциях линкера есть путь к каталогу с либами - $(BOOST)/stage/lib Примитивная программа, которая просто создает поток, компилируется и работает. Однако, проблемы начинаются, когда я вызываю функцию boost::this_thread::interruption_enabled(). На неё ругается линкер:
Я посмотрел в либе boost_thread-vc71-mt-gd-1_44.lib и нашел там функцию ?interruption_enabled@this_thread@boost@@YI_NXZ Как видите, разница с той, которую ждет линкер, в одну букву. На эти имена я натравил майкросовтовский undecorator имен, и получил следующее: Линкер ожидает bool __cdecl boost::this_thread::interruption_enabled(void), а в либе лежит bool __fastcall boost::this_thread::interruption_enabled(void). А теперь вопрос: подскажите плс, что мне сделать, чтобы чертова функция вызывалась? UPD: Проблему решил путем установки флага в опциях компиляции проекта |