Решил использовать boost::regex => получил ошибку |
Здравствуйте, гость ( Вход | Регистрация )
Решил использовать boost::regex => получил ошибку |
shasoft |
7.12.2012, 20:33
Сообщение
#1
|
Студент Группа: Новичок Сообщений: 11 Регистрация: 3.10.2012 Пользователь №: 3545 Спасибо сказали: 0 раз(а) Репутация: 0 |
Использовал в проекте boost (boost::geometry), нормально компилировалось и работало.
Понадобились регулярные выражения. Подключил #include <boost/regex.hpp> Написал в коде
И получил ошибки: Цитата ./debug\Match.o:Match.cpp:(.text$_ZN5boost9re_detail27cpp_regex_traits_char_layerIcEC2ERKNS0_21cpp_regex_tra its_baseIcEE[boost::re_detail::cpp_regex_traits_char_layer<char>::cpp_regex_traits_char_layer(boost::re_detail::cpp_regex_traits_base<char> const&)]+0x21): undefined reference to `boost::re_detail::cpp_regex_traits_char_layer<char>::init()' ./debug\Match.o:Match.cpp:(.text$_ZN5boost9re_detail11raw_storage6extendEj[boost::re_detail::raw_storage::ex tend(unsigned int)]+0x41): undefined reference to `boost::re_detail::raw_storage::resize(unsigned int)' ./debug\Match.o:Match.cpp:(.text$_ZN5boost9re_detail18basic_regex_parserIcNS_12regex_traitsIcNS_16cpp_regex_ traitsIcEEEEE4failENS_15regex_constants10error_typeEiSsi[boost::re_detail::basic_ regex_parser<char, boost::regex_traits<char, boost::cpp_regex_traits<char> > >::fail(boost::regex_constants::error_type, int, std::basic_string<char, std::char_traits<char>, std::allocator<char> >, int)]+0x279): undefined reference to `boost::regex_error::regex_error(std::string const&, boost::regex_constants::error_type, int)' ... Специалисты могут подсказать решение? |
|
|
igor_bogomolov |
7.12.2012, 21:21
Сообщение
#2
|
Профессионал Группа: Сомодератор Сообщений: 1215 Регистрация: 22.3.2009 Из: Саратов Пользователь №: 630 Спасибо сказали: 235 раз(а) Репутация: 29 |
boost::regex - это собираемая библиотека, просто подключить заголовочный файл не достаточно.
Т.ч. либо доставь соответствующую библиотеку, либо собери её. |
|
|
shasoft |
7.12.2012, 22:45
Сообщение
#3
|
Студент Группа: Новичок Сообщений: 11 Регистрация: 3.10.2012 Пользователь №: 3545 Спасибо сказали: 0 раз(а) Репутация: 0 |
В .pro файле прописано:
Цитата LIBS += -Lm:/Library.Share/boost_1_52_0/mgw44 в папке лежат библиотеки regexp Цитата libboost_regex-mgw44-mt-1_52.a libboost_regex-mgw44-mt-d-1_52.a Что ещё требуется? |
|
|
Litkevich Yuriy |
8.12.2012, 0:52
Сообщение
#4
|
разработчик РЭА Группа: Сомодератор Сообщений: 9669 Регистрация: 9.1.2008 Из: Тюмень Пользователь №: 64 Спасибо сказали: 807 раз(а) Репутация: 94 |
надо наверное сам файл указать.
|
|
|
Iron Bug |
8.12.2012, 10:31
Сообщение
#5
|
Профессионал Группа: Модератор Сообщений: 1611 Регистрация: 6.2.2009 Из: Yekaterinburg Пользователь №: 533 Спасибо сказали: 219 раз(а) Репутация: 12 |
да, в мингве надо явно библиотеки указывать (это же gcc). не могу сказать, как это сделать в Qt, но нужно, чтобы у линковщика была строка -lboost_regex-mgw44-mt-1_52
|
|
|
shasoft |
8.12.2012, 12:09
Сообщение
#6
|
Студент Группа: Новичок Сообщений: 11 Регистрация: 3.10.2012 Пользователь №: 3545 Спасибо сказали: 0 раз(а) Репутация: 0 |
Ясно. Будем искать. Я то думал, что достаточно просто указать директорию с библиотеками.
Вот правильные строки Цитата INCLUDEPATH += $(LIBRARY_SHARE)/boost_1_52_0 LIBS += -L$(LIBRARY_SHARE)/boost_1_52_0/mgw44" -lboost_regex-mgw44-mt-1_52 При подключении не забудьте исправить на свою версию boost-а |
|
|
Litkevich Yuriy |
8.12.2012, 14:58
Сообщение
#7
|
разработчик РЭА Группа: Сомодератор Сообщений: 9669 Регистрация: 9.1.2008 Из: Тюмень Пользователь №: 64 Спасибо сказали: 807 раз(а) Репутация: 94 |
если используется только одна библиотека, то можно одной записью сделать
А по отдельности удобно, когда несколько библиотек используется из одного каталога. |
|
|
shasoft |
8.12.2012, 17:21
Сообщение
#8
|
Студент Группа: Новичок Сообщений: 11 Регистрация: 3.10.2012 Пользователь №: 3545 Спасибо сказали: 0 раз(а) Репутация: 0 |
если используется только одна библиотека, то можно одной записью сделать
А по отдельности удобно, когда несколько библиотек используется из одного каталога. Ясно. Спасибо. Я вроде пробовал так. Но наверное не "-L", а "-l" указывал. В любом случае boost я подключил, чтобы потом его использовать. Просто до сих пор хедер-онли использовал. |
|
|
Текстовая версия | Сейчас: 22.11.2024, 4:26 |