Closed MaksVasilev closed 8 years ago
Boost 1.85
Boost 1.58
libQt5 5.5.0
clang 3.7
openSUSE Tumbleweed/20150924 x86_64 (kernel 4.2.1)
Can confirm this on Ubuntu 15.04 with Clang 3.6. It seems that std::ios_base::failure has been changed in C++11 and thus breaks compilation.
For me, compilation always fails similarly when _tools/unix/buildomim.sh is issued:
make[1]: Entering directory '/home/gabriel/Desktop/omim-build-debug/qt'
clang++ -ccc-gcc-name g++ -Wl,--gc-sections -Wl,-Bsymbolic-functions -o ../out/debug/MAPS.ME ../out/debug/tmp/qt/main.o ../out/debug/tmp/qt/mainwindow.o ../out/debug/tmp/qt/draw_widget.o ../out/debug/tmp/qt/proxystyle.o ../out/debug/tmp/qt/slider_ctrl.o ../out/debug/tmp/qt/about.o ../out/debug/tmp/qt/info_dialog.o ../out/debug/tmp/qt/preferences_dialog.o ../out/debug/tmp/qt/search_panel.o ../out/debug/tmp/qt/update_dialog.o ../out/debug/tmp/qt/qrc_resources.o ../out/debug/tmp/qt/moc_mainwindow.o ../out/debug/tmp/qt/moc_draw_widget.o ../out/debug/tmp/qt/moc_about.o ../out/debug/tmp/qt/moc_info_dialog.o ../out/debug/tmp/qt/moc_preferences_dialog.o ../out/debug/tmp/qt/moc_search_panel.o ../out/debug/tmp/qt/moc_update_dialog.o -L../out/debug -lmap -lrender -lgui -lrouting -lsearch -lstorage -lindexer -lgraphics -lplatform -lanim -lgeometry -lcoding -lbase -lfreetype -lexpat -lfribidi -ltomcrypt -ljansson -lprotobuf -losrm -lstats_client -lminizip -lsuccinct -lz -lQt5OpenGL -L/usr/X11R6/lib64 -lQt5Widgets -lQt5Gui -lQt5Network -lQt5Core -lGL -lpthread
../out/debug/libgraphics.a(resource_manager.o): In function `boost::gil::io_error(char const*)':
/home/gabriel/Desktop/omim/3party/boost/boost/gil/extension/io/io_error.hpp:27: undefined reference to `std::ios_base::failure::failure(char const*, std::error_code const&)'
../out/debug/libstats_client.a(file_manager_posix_impl.o): In function `alohalytics::FileManager::GetFileSize(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)':
/home/gabriel/Desktop/omim/3party/Alohalytics/src/posix/file_manager_posix_impl.cc:73: undefined reference to `std::ios_base::failure::failure(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)'
/home/gabriel/Desktop/omim/3party/Alohalytics/src/posix/file_manager_posix_impl.cc:76: undefined reference to `std::ios_base::failure::failure(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)'
clang: error: linker command failed with exit code 1 (use -v to see invocation)
Makefile:193: recipe for target '../out/debug/MAPS.ME' failed
make[1]: *** [../out/debug/MAPS.ME] Error 1
make[1]: Leaving directory '/home/gabriel/Desktop/omim-build-debug/qt'
Makefile:810: recipe for target 'sub-qt-make_first-ordered' failed
make: *** [sub-qt-make_first-ordered] Error 2
@MaksVasilev what is Boost 1.85? The latest is 1.59. Your issue can be related to clang 3.7 https://llvm.org/bugs/show_bug.cgi?id=24844
@socketbind Just rechecked on a clean Ubuntu 15.04 with clang 3.6 and boost 1.55 libraries installed. Everything compiles flawlessly. Please check your environment variables/flags or share a link to a full build log.
We use system boost libraries only to compile OSRM binaries, which are built after maps client (which resides in qt.pro file). Maps client uses embedded boost headers in 3party folder (and they are from 1.54 version). Your issue can be caused by somehow mixing headers/includes.
Boost 1.58, а не 1.85. Опечатался.
Can you try to uninstall system boost libraries and try to recompile again? And it would be really helpful to see a complete build log.
Нет, удалить системный буст нет возможности, от него зависит много приложений более важного плана.
В данный момент времени, на текущем актуальном срезе гит-репозитария ошибка не проявляется, обновлений LLVM за это время не было.
FYI: Я исправлял некоторые ошибки сборки и обновил буст в проекте. Внешний буст из системы используется только для сборки бинарника 3party osrm.
clang++ -ccc-gcc-name g++ -Wl,--gc-sections -Wl,-Bsymbolic-functions -o ../out/release/MAPS.ME ../out/release/tmp/qt/main.o ../out/release/tmp/qt/mainwindow.o ../out/release/tmp/qt/draw_widget.o ../out/release/tmp/qt/proxystyle.o ../out/release/tmp/qt/slider_ctrl.o ../out/release/tmp/qt/about.o ../out/release/tmp/qt/info_dialog.o ../out/release/tmp/qt/preferences_dialog.o ../out/release/tmp/qt/search_panel.o ../out/release/tmp/qt/update_dialog.o ../out/release/tmp/qt/qrc_resources.o ../out/release/tmp/qt/moc_mainwindow.o ../out/release/tmp/qt/moc_draw_widget.o ../out/release/tmp/qt/moc_about.o ../out/release/tmp/qt/moc_info_dialog.o ../out/release/tmp/qt/moc_preferences_dialog.o ../out/release/tmp/qt/moc_search_panel.o ../out/release/tmp/qt/moc_update_dialog.o -L../out/release -lmap -lrender -lgui -lrouting -lsearch -lstorage -lindexer -lgraphics -lplatform -lanim -lgeometry -lcoding -lbase -lfreetype -lexpat -lfribidi -ltomcrypt -ljansson -lprotobuf -losrm -lstats_client -lminizip -lsuccinct -lz -lQt5OpenGL -L/usr/lib64 -lQt5Widgets -lQt5Gui -lQt5Network -lQt5Core -lGL -lpthread ../out/release/libgraphics.a(resource_manager.o): In function
boost::gil::ioerror(char const)': /home/maks/SOFT/build/omim/graphics/../3party/boost/boost/gil/extension/io/io_error.hpp:27: undefined reference tostd::ios_base::failure::failure(char const_, std::error_code const&)' /home/maks/SOFT/build/omim/graphics/../3party/boost/boost/gil/extension/io/io_error.hpp:27: undefined reference to
std::ios_base::failure::failure(char const, std::error_code const&)' /home/maks/SOFT/build/omim/graphics/../3party/boost/boost/gil/extension/io/io_error.hpp:27: undefined reference tostd::ios_base::failure::failure(char const_, std::error_code const&)' /home/maks/SOFT/build/omim/graphics/../3party/boost/boost/gil/extension/io/io_error.hpp:27: undefined reference to
std::iosbase::failure::failure(char const, std::error_code const&)' /home/maks/SOFT/build/omim/graphics/../3party/boost/boost/gil/extension/io/io_error.hpp:27: undefined reference to `std::ios_base::failure::failure(char const, std::error_code const&)' ../out/release/libgraphics.a(resource_manager.o):/home/maks/SOFT/build/omim/graphics/../3party/boost/boost/gil/extension/io/io_error.hpp:27: more undefined references tostd::ios_base::failure::failure(char const_, std::error_code const&)' follow ../out/release/libstats_client.a(file_manager_posix_impl.o): In function
alohalytics::FileManager::GetFileSize(std::cxx11::basic_string<char, std::char_traitsstd::ios_base::failure::failure(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)' clang-3.7: error: linker command failed with exit code 1 (use -v to see invocation) Makefile:193: ошибка выполнения рецепта для цели «../out/release/MAPS.ME» make[1]: *_\* [../out/release/MAPS.ME] Ошибка 1 make[1]: выход из каталога «/home/maks/SOFT/build/omim/qt» Makefile:810: ошибка выполнения рецепта для цели «sub-qt-make_first-ordered» make: **\* [sub-qt-make_first-ordered] Ошибка 2