Al vincular mi proyecto en el modo de liberación que estoy recibiendo la siguiente advertencia:biblioteca Boost expresión regular que une en modo de lanzamiento advierte "sección duplicado tiene diferente tamaño" cuando se utiliza MinGW-W64 cadena de herramientas
myProject-libs/release/libboost_regex-mt-s-1.50.0.a(cpp_regex_traits.o): duplicate section `.data$_ZZN5boost16cpp_regex_traitsIcE21get_catalog_name_instEvE6s_name[boost::cpp_regex_traits<char>::get_catalog_name_inst()::s_name]' has different size
Sospecho que la podría ser que la biblioteca de impulso esté compilada con diferentes opciones que las que uso para mi proyecto, pero no sé cómo encontrar la diferencia (el impulso no dio como resultado estas opciones durante la compilación).
Para compilar el impulso para Win32 en Ubuntu 12.04 He utilizado este procedimiento:
tar jxf boost_1_50_0.tar.bz2
cd boost_1_50_0
./bootstrap.sh
echo "using gcc : 4.6 : i686-w64-mingw32-g++ : <rc>i686-w64-mingw32-windres <archiver>i686-w64-mingw32-ar ;" > user-config.jam
./bjam toolset=gcc target-os=windows --address-model=32 variant=release threading=multi threadapi=win32 link=static runtime-link=static --prefix=/opt/boost_1_50_0-release-static-windows-32 --user-config=user-config.jam -j 10 --without-mpi --without-python -sNO_BZIP2=1 -sNO_ZLIB=1 --layout=tagged install
Para compilar los archivos en mi proyecto utilizo algo como
i686-w64-mingw32-g++ -march=corei7 -mfpmath=sse -m32 -Wall -fmessage-length=0 -I"/opt/boost_1_50_0-release-static-windows-32/include" -std=c++0x -O3 -g0 -DNDEBUG -I"myProject/src/cpp" -c -o myProject/build/release/src/cpp/myproject.o myproject/src/cpp/myproject.cpp
Las pruebas que tengo indica que las expresiones regulares funcionan bien, pero aún así me gustaría resolver la advertencia.
EDITAR
He encontrado que las opciones adicionales al compilador de impulso se pueden agregar utilizando un CXXFLAGS = argumento de bjam.
Ejemplo: CXXFLAGS bjam = '- CLPI' ....
Tal vez asegurándose de pasar los mismos argumentos que he hecho para el proyecto podría resolver el problema (en particular los argumentos relacionados con optimizaciones como se sugiere en la pregunta vinculada).
¿Has logrado compilar boost tan claramente en linux con esa línea de comandos? La última vez que lo intenté me llevó varias horas. Estoy votando tu pregunta solo por eso. – dsign
No era realmente yo, solo copié y pegué de una página ya olvidada, pero también me llevó mucho tiempo encontrar un código corto tan bueno entre miles de trucos y consejos dispersos. –
También tengo este 'problema' en Windows 7 64 con mingw-w64 (gcc 4.7.1, boost 1.51.0), pero no con mingw (gcc 4.7.0). tal vez este es un problema de mingw-w64? – user573335