Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > C/C++: Общие вопросы > Собрал boost с MinGW


Автор: SABROG 30.3.2010, 13:43
Библиотеки имеют такие имена:

Код

libboost_date_time-mgw44-mt-1_42.lib
libboost_filesystem-mgw44-mt-1_42.lib
libboost_graph-mgw44-mt-1_42.lib
libboost_iostreams-mgw44-mt-1_42.lib
libboost_math_c99-mgw44-mt-1_42.lib
libboost_math_c99f-mgw44-mt-1_42.lib
libboost_math_c99l-mgw44-mt-1_42.lib
libboost_math_tr1-mgw44-mt-1_42.lib
libboost_math_tr1f-mgw44-mt-1_42.lib
libboost_math_tr1l-mgw44-mt-1_42.lib
libboost_prg_exec_monitor-mgw44-mt-1_42.lib
libboost_program_options-mgw44-mt-1_42.lib
libboost_regex-mgw44-mt-1_42.lib
libboost_serialization-mgw44-mt-1_42.lib
libboost_signals-mgw44-mt-1_42.lib
libboost_system-mgw44-mt-1_42.lib
libboost_test_exec_monitor-mgw44-mt-1_42.lib
libboost_thread-mgw44-mt-1_42.lib
libboost_unit_test_framework-mgw44-mt-1_42.lib
libboost_wave-mgw44-mt-1_42.lib
libboost_wserialization-mgw44-mt-1_42.lib


Сторонний проект подключает буст так:

Код

   SET( BOOST_LIBS 
       boost_program_options-mt 
       boost_filesystem-mt
       boost_thread-mt
       boost_regex-mt )  


Ошибка такая:

Код

c:/mingw/bin/../lib/gcc/mingw32/4.4.1/../../../../mingw32/bin/ld.exe: cannot find -lboost_program_options-mt
collect2: ld returned 1 exit status


Вопрос в том влияют ли имена библиотек или все-таки проблема с путями?

Автор: samsamich 30.3.2010, 14:05
Цитата(SABROG @  30.3.2010,  13:43 Найти цитируемый пост)
все-таки проблема с путями? 
попробуй привести путь к нормальному виду - у меня получилось следующее:
c:/mingw/mingw32/bin/ld.exe  - путь существует?

Автор: SABROG 30.3.2010, 14:34
Цитата(samsamich @  30.3.2010,  14:05 Найти цитируемый пост)
c:/mingw/mingw32/bin/ld.exe  - путь существует? 

Да. Но дело не в пути к ld, это ошибки самого ld о том, что он не находит библиотеку, которую пытаются прилинковать.

Автор: just_geek 31.3.2010, 01:37
Я так понимаю используется CMake? Так может в этом деле. По крайней мере комментарии к модулю FindBoost.cmake говорят, что буст подключается таки по другому.

Цитата

# == Using actual libraries from within Boost: ==
#
#   set(Boost_USE_STATIC_LIBS   ON)
#   set(Boost_USE_MULTITHREADED ON)
#   find_package( Boost 1.36.0 COMPONENTS date_time filesystem system ... )
#
#   if(Boost_FOUND)
#      include_directories(${Boost_INCLUDE_DIRS})
#      add_executable(foo foo.cc)
#      target_link_libraries(foo ${Boost_LIBRARIES})
#   endif()

Автор: SABROG 31.3.2010, 19:17
Ясно, значит разработчик либы, которую я собираю не знает что делает. А как же подобный вопрос решается при сборке с обычными Makefile'ами? Заставлять юзера библиотеки исправлять его вручную или использовать скрипт ./configure?

Автор: boostcoder 1.4.2010, 09:00
...

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)