c++ boost c++11 bjam

¿Cómo construir Boost con soporte C++ 0x?



c++11 bjam (5)

Además, puede cambiar los indicadores de compilación para un archivo como este:

exe test : test.cpp : <cxxflags>-std=gnu++0x ;

No sé cómo compilar Boost con compiladores C ++ 0x. ¿Qué opción se debe dar a bjam? ¿Debería modificarse el archivo user.config? ¿Alguien puede ayudarme?

Mejor, Vicente



He encontrado la respuesta. Estaba esperando una característica como ''std'' y la llamo de la siguiente manera:

bjam std=0x

pero actualmente necesitamos usar las variables de bajo nivel cxxflags y agregar los indicadores específicos del compilador. Por ejemplo, para gcc podemos hacer

bjam toolset=gcc cxxflags=-std=gnu++0x

Otros compiladores necesitarán una configuración diferente.

En espera de una nueva función Boost.Build, también puede definir su propio conjunto de herramientas de la siguiente manera: Agregue el archivo user.config o site.config

using gcc : std0x : "/usr/bin/g++" # your path to the C++0x compiler : <cxxflags>-std=gnu++0x ;

Y ahora llama como

bjam toolset=gcc-std0x


Para compilar usando clang, use los cxxflags y linkflags :

./b2 / ... cxxflags="-std=c++0x -stdlib=libc++" / linkflags="-stdlib=libc++" / ...

Pasar un -v a cxxflags también es útil cuando se cxxflags .


Usa algo como esto:

./bootstrap.sh --with-toolset=gcc --prefix=/usr/local ./b2 -j12 toolset=gcc variant=release link=shared threading=multi address-model=64 cxxflags=-std=c++11 install

El -j12 es para uso en paralelo (12 hilos) -std=c++11 para una mejor compatibilidad y -std=gnu++11 para las extensiones gnu (solo para gcc)

if boost :: mpi no es compilación (vea la salida del comando anterior) -> edit the user-config.jam

si desea compilar solo ciertos componentes: agregue:

--with-libraries=system,thread,serialization

por ejemplo

Aquí hay un script adaptado de mi framework de travis (ajustar ROOT_PATH ):

BOOST_DOWNLOAD_URL="http://sourceforge.net/projects/boost/files/boost/1.58.0/boost_1_58_0.tar.bz2/download" BOOST_BUILD=${ROOT_PATH}/boostBuild mkdir -p ${BOOST_BUILD} wget --no-verbose --output-document="${ROOT_PATH}/boost.tar.bz2" "$BOOST_DOWNLOAD_URL" cd ${BOOST_BUILD} tar jxf "${ROOT_PATH}/boost.tar.bz2" --strip-components=1 -C "${BOOST_BUILD}" ./bootstrap.sh --with-toolset=gcc --with-libraries=system,thread,serialization,filesystem,chrono,atomic,date_time sudo ./b2 -j12 toolset=gcc threading=multi link=shared release install

que se instala en /usr/local .