OpenSUSE error al compilar

Asked by Bernardo Arago on 2012-11-26

Instalé según Compile.txt en fuente de freefilesync 5.9
zypper in -t pattern devel_C_C++
wxWidgets-2.8
boost_1_52_0
me da error al hacer make en el directorio de FFS5.9

application.cpp:(.text._ZN5boost10task_movedC2Ev[_ZN5boost10task_movedC5Ev]+0x9): undefined reference to `boost::future_category()'
OBJ/FFS_Release_GCC_Make/lib/parallel_scan.o: In function `zen::fillBuffer(std::set<zen::DirectoryKey, std::less<zen::DirectoryKey>, std::allocator<zen::DirectoryKey> > const&, std::map<zen::DirectoryKey, zen::DirectoryValue, std::less<zen::DirectoryKey>, std::allocator<std::pair<zen::DirectoryKey const, zen::DirectoryValue> > >&, zen::FillBufferCallback&, unsigned long)':
parallel_scan.cpp:(.text+0x3be9): undefined reference to `boost::thread::do_try_join_until(timespec const&)'
collect2: error: ld returned 1 exit status
make: *** [FreeFileSync] Error 1

Question information

Language:
English Edit question
Status:
Solved
For:
FreeFileSync Edit question
Assignee:
No assignee Edit question
Last query:
2012-11-26
Last reply:
2013-01-01
Zenju (zenju) said : #1

It cannot find the boost thread libraries. Can you provide some more information about what you were doing?

Bernardo Arago (nanoarago) said : #2

I detail what I am doing step by step, thanks in advance.
==================================================================
nanopc:/home/nano/Descargas/ffs59 # zypper in -t pattern devel_C_C++
Obteniendo los datos del repositorio...
Leyendo los paquetes instalados...
pattern:devel_C_C++ ya está instalado.
No hay actualización para devel_C_C++-12.2-5.5.1.x86_64. La última versión disponible ya se encuentra instalada.
Resolviendo dependencias...

No hay nada que hacer.
==================================================================
nanopc:/home/nano/Descargas/wxWidgets-2.8.12 # ./configure --with-gtk --enable-unicode --disable-debug
===end of the exit=====================================================
Configured wxWidgets 2.8.12 for `x86_64-unknown-linux-gnu'

  Which GUI toolkit should wxWidgets use? GTK+ 2
  Should wxWidgets be compiled into single library? no
  Should wxWidgets be compiled in debug mode? no
  Should wxWidgets be linked as a shared library? yes
  Should wxWidgets be compiled in Unicode mode? yes
  What level of wxWidgets compatibility should be enabled?
                                       wxWidgets 2.4 no
                                       wxWidgets 2.6 yes
  Which libraries should wxWidgets use?
                                       jpeg builtin
                                       png sys
                                       regex builtin
                                       tiff builtin
                                       zlib sys
                                       odbc no
                                       expat builtin
                                       libmspack no
                                       sdl no
==================================================================
nanopc:/home/nano/Descargas/wxWidgets-2.8.12 # make

(if test -d utils/wxrc ; then cd utils/wxrc && make all ; fi)
make[1]: se ingresa al directorio `/home/nano/Descargas/wxWidgets-2.8.12/utils/wxrc'
make[1]: No se hace nada para `all'.
make[1]: se sale del directorio `/home/nano/Descargas/wxWidgets-2.8.12/utils/wxrc'
==================================================================
nanopc:/home/nano/Descargas/wxWidgets-2.8.12 # make install
===end of the exit===============================================================
------------------------------------------------------
  The installation of wxWidgets is finished. On certain
 platforms (e.g. Linux) you'll now have to run ldconfig
 if you installed a shared library and also modify the
 LD_LIBRARY_PATH (or equivalent) environment variable.

 wxWidgets comes with no guarantees and doesn't claim
 to be suitable for any purpose.

 Read the wxWidgets Licence on licencing conditions.
 ------------------------------------------------------
==================================================================
nanopc:/home/nano/Descargas/wxWidgets-2.8.12 # ldconfig /usr/local/lib
nanopc:/home/nano/Descargas/boost_1_52_0 # ./bootstrap.sh --prefix=/usr/local/ --with-libraries=thread
===end of the exit===============================================================
Building Boost.Build engine with toolset gcc... tools/build/v2/engine/bin.linuxx86_64/b2
Unicode/ICU support for Boost.Regex?... not found.
Backing up existing Boost.Build configuration in project-config.jam.5
Generating Boost.Build configuration in project-config.jam...

Bootstrapping is done. To build, run:

    ./b2

To adjust configuration, edit 'project-config.jam'.
Further information:

   - Command line help:
     ./b2 --help

   - Getting started guide:
     http://www.boost.org/more/getting_started/unix-variants.html

   - Boost.Build documentation:
     http://www.boost.org/boost-build2/doc/html/index.html
==================================================================
nanopc:/home/nano/Descargas/boost_1_52_0 # ./bjam --clean install

...found 1 target...
...updating 1 target...
common.Clean clean
common.Clean clean
common.Clean clean
common.Clean clean
common.Clean clean
common.Clean clean
...updated 1 target...
==================================================================
nanopc:/home/nano/Descargas/boost_1_52_0 # ./bjam install

...updated 9037 targets...
==================================================================
nanopc:/home/nano/Descargas/boost_1_52_0 # zypper in libselinux-devel

Obteniendo los metadatos del repositorio 'openSUSE-12.2-Update' .........[hecho]
Construyendo el caché del repositorio 'openSUSE-12.2-Update' ............[hecho]
Obteniendo los datos del repositorio...
Leyendo los paquetes instalados...
libselinux-devel ya está instalado.
No hay actualización para libselinux-devel-2.0.91-19.1.15.x86_64. La última versión disponible ya se encuentra instalada.
Resolviendo dependencias...

No hay nada que hacer.
==================================================================
nanopc:/home/nano/Descargas/ffs59 # make

g++ -o ./BUILD/FreeFileSync OBJ/FFS_Release_GCC_Make/algorithm.o OBJ/FFS_Release_GCC_Make/application.o OBJ/FFS_Release_GCC_Make/comparison.o OBJ/FFS_Release_GCC_Make/structures.o OBJ/FFS_Release_GCC_Make/synchronization.o OBJ/FFS_Release_GCC_Make/file_hierarchy.o OBJ/FFS_Release_GCC_Make/ui/custom_grid.o OBJ/FFS_Release_GCC_Make/ui/folder_history_box.o OBJ/FFS_Release_GCC_Make/ui/exec_finished_box.o OBJ/FFS_Release_GCC_Make/ui/dir_name.o OBJ/FFS_Release_GCC_Make/ui/batch_config.o OBJ/FFS_Release_GCC_Make/ui/batch_status_handler.o OBJ/FFS_Release_GCC_Make/ui/check_version.o OBJ/FFS_Release_GCC_Make/ui/grid_view.o OBJ/FFS_Release_GCC_Make/ui/tree_view.o OBJ/FFS_Release_GCC_Make/ui/gui_generated.o OBJ/FFS_Release_GCC_Make/ui/gui_status_handler.o OBJ/FFS_Release_GCC_Make/ui/main_dlg.o OBJ/FFS_Release_GCC_Make/ui/msg_popup.o OBJ/FFS_Release_GCC_Make/ui/progress_indicator.o OBJ/FFS_Release_GCC_Make/ui/search.o OBJ/FFS_Release_GCC_Make/ui/small_dlgs.o OBJ/FFS_Release_GCC_Make/ui/sync_cfg.o OBJ/FFS_Release_GCC_Make/ui/taskbar.o OBJ/FFS_Release_GCC_Make/ui/triple_splitter.o OBJ/FFS_Release_GCC_Make/ui/tray_icon.o OBJ/FFS_Release_GCC_Make/lib/binary.o OBJ/FFS_Release_GCC_Make/lib/db_file.o OBJ/FFS_Release_GCC_Make/lib/dir_lock.o OBJ/FFS_Release_GCC_Make/lib/hard_filter.o OBJ/FFS_Release_GCC_Make/lib/icon_buffer.o OBJ/FFS_Release_GCC_Make/lib/localization.o OBJ/FFS_Release_GCC_Make/lib/parallel_scan.o OBJ/FFS_Release_GCC_Make/lib/process_xml.o OBJ/FFS_Release_GCC_Make/lib/resolve_path.o OBJ/FFS_Release_GCC_Make/lib/resources.o OBJ/FFS_Release_GCC_Make/lib/perf_check.o OBJ/FFS_Release_GCC_Make/lib/status_handler.o OBJ/FFS_Release_GCC_Make/lib/versioning.o OBJ/FFS_Release_GCC_Make/lib/xml_base.o OBJ/FFS_Release_GCC_Make/zen/recycler.o OBJ/FFS_Release_GCC_Make/zen/file_handling.o OBJ/FFS_Release_GCC_Make/zen/file_id.o OBJ/FFS_Release_GCC_Make/zen/file_io.o OBJ/FFS_Release_GCC_Make/zen/file_traverser.o OBJ/FFS_Release_GCC_Make/zen/zstring.o OBJ/FFS_Release_GCC_Make/zen/format_unit.o OBJ/FFS_Release_GCC_Make/wx+/grid.o OBJ/FFS_Release_GCC_Make/wx+/button.o OBJ/FFS_Release_GCC_Make/wx+/graph.o OBJ/FFS_Release_GCC_Make/wx+/tooltip.o OBJ/FFS_Release_GCC_Make/wx+/zlib_wrap.o -pthread -lrt -lz `wx-config --libs std,aui --debug=no --unicode=yes` -lboost_thread -lboost_system `pkg-config --libs gtk+-2.0` `pkg-config --libs libselinux`
OBJ/FFS_Release_GCC_Make/application.o: In function `boost::future_uninitialized::future_uninitialized()':
application.cpp:(.text._ZN5boost20future_uninitializedC2Ev[_ZN5boost20future_uninitializedC5Ev]+0x9): undefined reference to `boost::future_category()'
OBJ/FFS_Release_GCC_Make/application.o: In function `boost::future_already_retrieved::future_already_retrieved()':
application.cpp:(.text._ZN5boost24future_already_retrievedC2Ev[_ZN5boost24future_already_retrievedC5Ev]+0x9): undefined reference to `boost::future_category()'
OBJ/FFS_Release_GCC_Make/application.o: In function `boost::task_already_started::task_already_started()':
application.cpp:(.text._ZN5boost20task_already_startedC2Ev[_ZN5boost20task_already_startedC5Ev]+0x9): undefined reference to `boost::future_category()'
OBJ/FFS_Release_GCC_Make/application.o: In function `boost::task_moved::task_moved()':
application.cpp:(.text._ZN5boost10task_movedC2Ev[_ZN5boost10task_movedC5Ev]+0x9): undefined reference to `boost::future_category()'
OBJ/FFS_Release_GCC_Make/application.o: In function `boost::detail::task_base<bool>::owner_destroyed()':
application.cpp:(.text._ZN5boost6detail9task_baseIbE15owner_destroyedEv[_ZN5boost6detail9task_baseIbE15owner_destroyedEv]+0x26): undefined reference to `boost::future_category()'
OBJ/FFS_Release_GCC_Make/comparison.o:comparison.cpp:(.text._ZN5boost14broken_promiseC2Ev[_ZN5boost14broken_promiseC5Ev]+0x9): more undefined references to `boost::future_category()' follow
OBJ/FFS_Release_GCC_Make/lib/parallel_scan.o: In function `zen::fillBuffer(std::set<zen::DirectoryKey, std::less<zen::DirectoryKey>, std::allocator<zen::DirectoryKey> > const&, std::map<zen::DirectoryKey, zen::DirectoryValue, std::less<zen::DirectoryKey>, std::allocator<std::pair<zen::DirectoryKey const, zen::DirectoryValue> > >&, zen::FillBufferCallback&, unsigned long)':
parallel_scan.cpp:(.text+0x3bf9): undefined reference to `boost::thread::do_try_join_until(timespec const&)'
collect2: error: ld returned 1 exit status
make: *** [FreeFileSync] Error 1

==================================================================
==================================================================
==================================================================

Zenju (zenju) said : #5

I'm not sure if this is a bug in my usage of boost or a bug in the dynamic thread library of boost, but linking the static thread library works:
-Wl,-Bstatic -lboost_thread -lboost_system -Wl,-Bdynamic