Версия для печати темы

Нажмите сюда для просмотра этой темы в обычном формате

Форум на CrossPlatform.RU _ boost _ Как подключить статически ?

Автор: flankerr 7.6.2011, 14:24

Windows \ QtCreator \ MinGw
есть собранный boost под MinGw

Что надо прописать в pro файле чтобы подключить используемую бустовую библиотеку статически ???

Автор: RazrFalcon 7.6.2011, 14:42

CONFIG += static
?

Автор: flankerr 7.6.2011, 15:14

Цитата(RazrFalcon @ 7.6.2011, 15:42) *
CONFIG += static
?

мимо.
Есть dll которые надо юзать именоо как dll, а есть либы котрые надо линковать статически - в частности буст.
Вот как отделить мух от клет и указать в про-файле что и как линковать вот в чём вопрос.

Автор: RazrFalcon 7.6.2011, 15:20

Поиск:
http://www.forum.crossplatform.ru/index.php?s=&showtopic=4093&view=findpost&p=30330

Автор: PAFOS 7.6.2011, 15:21

А сама boost собрана статически?

Автор: Iron Bug 7.6.2011, 20:30

я просто линкую нужные библиотеки (которые с -s на конце в названии - так буст обозначает статические библиотеки). больше ничего не требуется.

Автор: flankerr 8.6.2011, 8:34

Цитата(RazrFalcon @ 7.6.2011, 16:20) *
Поиск:http://www.forum.crossplatform.ru/index.php?s=&showtopic=4093&view=findpost&p=30330
Ответ ради ответа ? :blink: Риторический вопрос ;) а если по сути - то снова мимо.


Цитата(Iron Bug @ 7.6.2011, 21:30) *
я просто линкую нужные библиотеки (которые с -s на конце в названии - так буст обозначает статические библиотеки). больше ничего не требуется.
Спасибо. Вот этой фишки с буквой "s" я не знал.

Автор: Iron Bug 8.6.2011, 8:43

Цитата(flankerr @ 8.6.2011, 10:34) *
Спасибо. Вот этой фишки с буквой "s" я не знал.

у буста есть целая номенклатурная идеология названий библиотек. там кроме компилятора и версии присутствуют "хвосты":
-mt - multithread (многопоточность)
-d - debug (отладка)
-s - static (статическая библиотека)
-g - standard runtime debug (линковка с отладочными версиями стандартных библиотек)
все они перечислены тут:
http://www.boost.org/doc/libs/1%5F41%5F0/more/getting%5Fstarted/unix-variants.html
в пункте 6.1

Автор: flankerr 8.6.2011, 10:13

в моём случае понадобилось добавить макрос BOOST_THREAD_USE_LIB
итого в pro файле у меня:

DEFINES += BOOST_THREAD_USE_LIB
LIBS += -static -lboost_thread-mgw44-mt-sd-1_46_1

Автор: Iron Bug 8.6.2011, 12:06

а без макроса не собиралось?
если я правильно помню, то BOOST_THREAD_USE_LIB под вендой не требуется для мингва. потому что я компилила статически, чтобы был один exe-шник, и проблем не возникало. а у меня этот макрос не определён. система под вендой сама определяет тип линковки, по библиотеке.
это проблема некоторых компиляторов и некоторых систем, но венда и мингв и так хавают, без него.
возможно, что он нужен не для всех библиотек. но сам boost_thread под вендой прекрасно линкуется и без него.

Автор: flankerr 9.6.2011, 9:48

без этого макроса не собиралось! Не находила в либе нужных сигнатур. А вот с макросом всё собралось и завелось.
WinXp \ Mingw44 \ QtCreator 2.2.0

Автор: Iron Bug 9.6.2011, 11:20

у меня XP, mingw 4.5, буст собран им же. вроде никаких проблем и без заголовка. собираю и mak файлами, и bjam'ом и иногда в Codeblocks. и нигде не требовалось. теоретически, я не понимаю, зачем он там нужен. внутри заголовков стоят дефайны, которые по опеределениям системы и компилятора проставляют нужные дефайны для всякой мелочи типа этого. скорее всего, либо не определены макросы венды, либо он не понимает макросы компилера.

Форум Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)