LINUX.ORG.RU

Программисты, помогите (boost,xerces-c,mysql++)


0

1

Собираю старую прогу под Gentoo.gcc 4.5.3. По мере возникновения ошибок из-за нехватки чего-либо, поставил: libglademm 2.6.7, boost 1.42 , mysql 5.1.56 , mysql++ 3.0.9. Версии пакетов, вроде, совпадают с теми, которые ставил для этой-же цели год назад . Вываливается ошибка, которую я как-то победил год назад, но не помню как :(((

Подскажите куда копать, учитывая, что она вываливает мне это :

make

[ 2%] Building CXX object alfabox-lib/CMakeFiles/alfabox-lib.dir/src/client.cpp.o /opt/v2/alfabox-lib/src/client.cpp:304:2: предупреждение: #warning TODO use correct xml Encoding /opt/v2/alfabox-lib/src/client.cpp:305:2: предупреждение: #warning TODO Hardcode filter log warning;

[ 4%] Building CXX object alfabox-lib/CMakeFiles/alfabox-lib.dir/src/database.cpp.o

[ 6%] Building CXX object alfabox-lib/CMakeFiles/alfabox-lib.dir/src/exec.cpp.o

[ 8%] Building CXX object alfabox-lib/CMakeFiles/alfabox-lib.dir/src/logs.cpp.o

[ 10%] Building CXX object alfabox-lib/CMakeFiles/alfabox-lib.dir/src/serial_port.cpp.o /opt/v2/alfabox-lib/src/serial_port.cpp:129:2: предупреждение: #warning not implemented

[ 12%] Building CXX object alfabox-lib/CMakeFiles/alfabox-lib.dir/src/ssl_request.cpp.o

[ 14%] Building CXX object alfabox-lib/CMakeFiles/alfabox-lib.dir/src/utils.cpp.o

[ 16%] Building CXX object alfabox-lib/CMakeFiles/alfabox-lib.dir/src/xml.cpp.o

/opt/v2/alfabox-lib/src/xml.cpp:14:2: предупреждение: #warning TODO use correct xml Encoding Linking CXX static library libalfabox-lib.a

[ 16%] Built target alfabox-lib

Scanning dependencies of target alfabox2-core

[ 18%] Building CXX object alfabox-core/CMakeFiles/alfabox2-core.dir/src/init.cpp.o

[ 20%] Building CXX object alfabox-core/CMakeFiles/alfabox2-core.dir/src/server.cpp.o

/opt/v2/alfabox-core/src/server.cpp:92:2: предупреждение: #warning ZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZ

Linking CXX executable alfabox2-core

../alfabox-lib/libalfabox-lib.a(utils.cpp.o): In function `_ZN5boost9re_detail21basic_regex_formatterINS0_19string_out_iteratorISsEENS_13match_resultsIN9__gnu_cxx17__normal_iteratorIPKcSsEESaINS_9sub_matchIS9_EEEEENS_20regex_traits_wrapperINS_12regex_traitsIcNS_16cpp_regex_traitsIcEEEEEES9_E3toiERS9_S9_i.clone.940': utils.cpp:(.text+0x1018): undefined reference to `boost::cpp_regex_traits<char>::toi(char const*&, char const*, int) const' ../alfabox-lib/libalfabox-lib.a(utils.cpp.o): In function `alfabox::utils::bz2_compress_file(std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)': utils.cpp:(.text+0x2424): undefined reference to `boost::iostreams::detail::bzip2_base::bzip2_base(boost::iostreams::bzip2_params const&)' utils.cpp:(.text+0x2aff): undefined reference to `boost::iostreams::detail::bzip2_base::~bzip2_base()' ../alfabox-lib/libalfabox-lib.a(utils.cpp.o): In function `alfabox::utils::load_cheque(std::map<std::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::less<std::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::basic_string<char, std::char_traits<char>, std::allocator<char> > const, std::basic_string<char, std::char_traits<char>, std::allocator<char> > > > >&, std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)': utils.cpp:(.text+0x2f96): undefined reference to `boost::basic_regex<char, boost::regex_traits<char, boost::cpp_regex_traits<char> > >::do_assign(char const*, char const*, unsigned int)' utils.cpp:(.text+0x320c): undefined reference to `boost::basic_regex<char, boost::regex_traits<char, boost::cpp_regex_traits<char> > >::do_assign(char const*, char const*, unsigned int)' ../alfabox-lib/libalfabox-lib.a(utils.cpp.o): In function `boost::re_detail::perl_matcher<__gnu_cxx::__normal_iterator<char const*, std::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<boost::sub_match<__gnu_cxx::__normal_iterator<char const*, std::basic_string<char, std::char_traits<char>, std::allocator<char> > > > >, boost::regex_traits<char, boost::cpp_regex_traits<char> > >::unwind_extra_block(bool)': utils.cpp:(.text._ZN5boost9re_detail12perl_matcherIN9__gnu_cxx17__normal_iteratorIPKcSsEESaINS_9sub_matchIS6_EEENS_12regex_traitsIcNS_16cpp_regex_traitsIcEEEEE18unwind_extra_blockEb[boost::re_detail::perl_matcher<__gnu_cxx::__normal_iterator<char const*, std::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<boost::sub_match<__gnu_cxx::__normal_iterator<char const*, std::basic_string<char, std::char_traits<char>, std::allocator<char> > > > >, boost::regex_traits<char, boost::cpp_regex_traits<char> > >::unwind_extra_block(bool)]+0x2c): undefined reference to `boost::re_detail::put_mem_block(void*)' ../alfabox-lib/libalfabox-lib.a(utils.cpp.o): In function `boost::detail::sp_counted_impl_p<boost::iostreams::symmetric_filter<boost::iostreams::detail::bzip2_compressor_impl<std::allocator<char> >, std::allocator<char> >::impl>::dispose()': utils.cpp:(.text._ZN5boost6detail17sp_counted_impl_pINS_9iostreams16symmetric_filterINS2_6detail21bzip2_compressor_implISaIcEEES6_E4implEE7disposeEv[boost::detail::sp_counted_impl_p<boost::iostreams::symmetric_filter<boost::iostreams::detail::bzip2_compressor_impl<std::allocator<char> >, std::allocator<char> >::impl>::dispose()]+0x24): undefined reference to `boost::iostreams::detail::bzip2_base::~bzip2_base()' ../alfabox-lib/libalfabox-lib.a(utils.cpp.o): In function `boost::re_detail::save_state_init::~save_state_init()': utils.cpp:(.text._ZN5boost9re_detail15save_state_initD2Ev[_ZN5boost9re_detail15save_state_initD5Ev]+0x12): undefined reference to `boost::re_detail::put_mem_block(void*)'

И еще страниц 5 такого гонива.

utils.cpp:(.text+0x2424): undefined reference to `boost::iostreams::detail::bzip2_base::bzip2_base(boost::iostreams::bzip2_params const&)'

Нет линковки с libboost_iostreams. Добавьте в target_link_library.

unfo ★★★★★
()
Ответ на: комментарий от anonymous

Мне неудобно за глупые вопросы, но уж извините , я программист на уровне bash и turbo pascal :)

Вот Смайк файл от того бинарника. Скажите что туда написать ...

cmake_minimum_required(VERSION 2.6)

SET(MODULE_NAME «core»)

INCLUDE (../alfabox-common)

add_definitions(-D__ALFABOX_MODULES_HEARTBEAT__=10000)

add_executable(alfabox2-${MODULE_NAME}

src/init.cpp

src/server.cpp

)

target_link_libraries(alfabox2-${MODULE_NAME} ${ALFABOX_LIBS} alfabox-lib)

install(TARGETS alfabox2-${MODULE_NAME} RUNTIME DESTINATION bin)

dmitry_kozak
() автор топика
Ответ на: комментарий от yoghurt

Не помогло :( Сделал так:

cmake_minimum_required(VERSION 2.6)

SET(MODULE_NAME «core»)

INCLUDE (../alfabox-common)

add_definitions(-D__ALFABOX_MODULES_HEARTBEAT__=10000)

add_executable(alfabox2-${MODULE_NAME}

src/init.cpp

src/server.cpp

)

target_link_libraries(alfabox2-${MODULE_NAME} ${ALFABOX_LIBS} alfabox-lib)

target_link_libraries(libboost_iostreams)

install(TARGETS alfabox2-${MODULE_NAME} RUNTIME DESTINATION bin)

Мож есть какой-то другой путь, как это починить? Когда я заставил прогу компилироваться я туда не лез. Как-то по другому она собралась .

dmitry_kozak
() автор топика
Ответ на: комментарий от dmitry_kozak

За такие скрипты сборки убивать надо. Относительные пути надо использовать относительно CMAKE_SOURCE_DIR или CMAKE_BINARY_DIR, иначе не будет работать сборка в других директориях. boost надо искать с помощью find_package. man cmake слабо прочитать ?

Reset ★★★★★
()
Ответ на: комментарий от Reset

man cmake прочитать не слабо :) слабо было понять, что надо читать. Ща почитаю...

dmitry_kozak
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.