Re: Как собрать boost для Qt под Windows?
От: nen777w  
Дата: 05.02.14 18:04
Оценка:
S>Вопрос банальный, но угробив день на это, задаю вопрос:
S>Как собрать boost для Qt под Windows?
S>Например, следуя инструкциям http://www.boost.org/doc/libs/1_51_0/doc/html/bbv2/installation.html msys не понимает, где директория b2. Как и я.

1) Что такое "boost для Qt под Windows"?
boost это одна библиотека
Qt — другая.

2) Под какой Вам компилятор нужно? cl/gcc ?

Во общем как собираю я. Батники кладете прямо в папку с библиотекой т.е. в ./boost_1_54_0
  "Для msvc 2010"

echo "BUILD BOOST X64"
bjam.exe --toolset=msvc-10.0 address-model=64 debug release threading=single threading=multi link=static runtime-link=static runtime-link=shared define=BOOST_SIGNALS_NAMESPACE=boost_signal_ns -sNO_COMPRESSION=0 -sNO_ZLIB=0 -sZLIB_SOURCE="./../../../../../zlib-1.2.8" -sZLIB_INCLUDE="./../../../../../zlib-1.2.8" stage

echo "Rename ./stage/lib -> ./stage/lib_cl_x64"
move "./stage/lib" "./stage/lib_cl_x64"

echo "BUILD BOOST X32"
bjam.exe --toolset=msvc-10.0 address-model=32 debug release threading=single threading=multi link=static runtime-link=static runtime-link=shared define=BOOST_SIGNALS_NAMESPACE=boost_signal_ns -sNO_COMPRESSION=0 -sNO_ZLIB=0 -sZLIB_SOURCE="./../../../../../zlib-1.2.8" -sZLIB_INCLUDE="./../../../../../zlib-1.2.8" stage

echo "Rename ./stage/lib -> ./stage/lib_cl_x32"
move "./stage/lib" "./stage/lib_cl_x32"



  "Для mingw"

echo off
set ORIG_PATH=%PATH%

echo "BUILD BOOST X64"
set PATH=C:\MinGWw\x64\mingw64\bin;%ORIG_PATH%
bjam.exe --toolset=gcc pch=off address-model=64 debug release threading=single threading=multi link=static runtime-link=static runtime-link=shared define=BOOST_SIGNALS_NAMESPACE=boost_signal_ns -sNO_COMPRESSION=0 -sNO_ZLIB=0 -sZLIB_SOURCE="./../../../../../zlib-1.2.8" -sZLIB_INCLUDE="./../../../../../zlib-1.2.8" stage

echo "Rename ./stage/lib -> ./stage/lib_gcc_x64"
move "./stage/lib" "./stage/lib_gcc_x64"

rem echo "BUILD BOOST X32"
rem set PATH=C:\MinGWw\x32\mingw32\bin;%ORIG_PATH%
rem bjam.exe --toolset=gcc pch=off address-model=32 debug release threading=single threading=multi link=static runtime-link=static runtime-link=shared define=BOOST_SIGNALS_NAMESPACE=boost_signal_ns -sNO_COMPRESSION=0 -sNO_ZLIB=0 -sZLIB_SOURCE="./../../../../../zlib-1.2.8" -sZLIB_INCLUDE="./../../../../../zlib-1.2.8" stage

rem echo "Rename ./stage/lib -> ./stage/lib_gcc_x32"
rem move "./stage/lib" "./stage/lib_gcc_x32"



Естественно bjam, и b2 должны быть собраны.
Собираются они легко вот отсюда: ./boost_1_54_0/tools/build/v2/engine

Обратите внимание вот на это:

define=BOOST_SIGNALS_NAMESPACE=boost_signal_ns


Это наверно то что с натяжкой можно назвать boost для Qt.
Т.е. если планируется юзать бустовые сигналы, то нужно позаботиться о том чтобы namespace boost::signals имел другое имя (не пересекался с Qt-шным мкросом signals)

Удачи.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.