Связывание библиотеки Regex Boost в режиме выпуска предупреждает, что «дублирующийся раздел имеет другой размер» при использовании mingw -набор инструментов w64

При связывании моего проекта в режиме выпуска я получаю следующее предупреждение:

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

Я подозреваю, что причина может заключаться в том, что библиотека boost скомпилирована с другими параметрами, чем я использую для своего проекта, но я не знаю, как найти разницу (boost не вывел эти параметры во время сборки ).

Чтобы скомпилировать boost для win32 на Ubuntu 12.04, я использовал эту процедуру:

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

Для компиляции файлов в моем проекте я использую что-то вроде

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

Тесты, которые у меня есть, показывают, что регулярные выражения работают нормально, но все же я хотел бы устранить предупреждение.

РЕДАКТИРОВАТЬ

Я обнаружил, что дополнительные параметры компилятора boost можно добавить с помощью аргумента cxxflags= команды bjam.

Пример :bjam cxxflags=' -fPIC'....

Возможно, передача в проект тех же аргументов, что и я, может решить проблему (, особенно аргументы, связанные с оптимизацией, как это предлагается в связанном вопросе ).

10
задан David L. 17 January 2015 в 09:52
поделиться