Программирование на "С/C++" и не только

Previous Entry Share Next Entry
Помогите слинковать бустовую либу
chabapok wrote in ru_cpp
Пытаюсь собрать потокобезопасный json_spirit под виндой (mingw).

Компилю boost thread:
b2 toolset=gcc threading=multi link=shared

Либе json_spirit, если она собирается потокобезопасно, нужен boost_thread. Я добавил его в линковку, но на этапе линковки вываливается такая ошибка:
<много символов>: undefined reference to `_imp___ZN5boost6detail12set_tss_dataEPKvNS_10shared_ptrINS0_20tss_cleanup_functionEEEPvb'

Причем, если открыть бустовую .dll в текстовом редакторе, то можно найти, что строка _imp___ZN5boost6detail12set_tss_dataEPKvNS_10shared_ptrINS0_20tss_cleanup_functionEEEPvb там есть (правда, начинается с двух подчеркиваний). dependency walker показывает эту функцию в либе без префикса _imp___

линкую так:
g++ -shared -Wl,--out-implib,libjjson_spirit.a -o json_spirit.dll -L "D:\qtcreatorApps\boost\boost_1_48_0\stage\lib" -lboost_thread-mgw44-mt-1_48.dll json_spirit_reader.o json_spirit_writer.o json_spirit_value.o

полный вывод ошибки занимает >100кб, суть ошибок сводится к тому, что не получается найти функции, которые в dll явно есть. Что я делаю не так? Второй день бьюсь без результата. Перепробовал методом тыка кучу вариантов. Статически собрать получается, но статическая либа не хочет линковаться с проектом по аналогичной причине - не находит функции с именем _imp___многабукв

  • 1
это какая-то странность. Вопрос заапрувили спустя полгода, я уже даже не помню как я решил эту проблему, и даже не помню при работе над каким проектом возникла проблема.

  • 1
?

Log in

No account? Create an account