Форум программистов, компьютерный форум, киберфорум
Boost C++
Войти
Регистрация
Восстановить пароль
 
Рейтинг 5.00/8: Рейтинг темы: голосов - 8, средняя оценка - 5.00
0 / 0 / 0
Регистрация: 28.04.2019
Сообщений: 2
1

Linking Error boost regex

28.04.2019, 11:02. Показов 1633. Ответов 1

Всем привет.
Скачал boost_1_69_0.
Скомпилил bjam
Bash
1
cmd d:\boost\boost_1_69_0\bootstrap.bat gcc
Версия компилятора
Bash
1
2
3
4
5
gcc --version
gcc (MinGW.org GCC-6.3.0-1) 6.3.0
Copyright (C) 2016 Free Software Foundation, Inc.
This is free software; see the source for copying conditions.  There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
Собрал библиотеки
Bash
1
bjam.exe --prefix=c:\MinGW\mingw32\boost32 toolset=gcc address-model=32 variant=debug,release link=static,shared threading=multi install
Создал проект в Qt Creator
C++ (Qt)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
TEMPLATE = app
CONFIG += console c++11
CONFIG -= app_bundle
CONFIG -= qt
 
INCLUDEPATH += c:/MinGW/mingw32/boost32/include/boost-1_69
 
LIBS += "-Lc:/MinGW/mingw32/boost32/lib" \
        -llibboost_system-mgw63-mt-d-x32-1_69 \
        -llibboost_regex-mgw63-mt-d-x32-1_69 \
        -llibboost_thread-mgw63-mt-d-x32-1_69
 
SOURCES += \
        main.cpp

C++ (Qt)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
#define BOOST_ALL_NO_LIB
#include <iostream>
#include <string>
#include <boost/regex.hpp>
#include <boost/system/error_code.hpp>
#include <boost/core/lightweight_test.hpp>
 
using namespace std;
using namespace boost;
 
int main()
{
    boost::regex pat( "^Subject: (Re: |Aw: )*(.*)" );
    return boost::report_errors();
}
Я уже перепробовал разные варианты сборки библиотек даже пробовал подсовывать готовые скомпилинные для msvc никакого эффекта все время выдает следующие ошибки.

D:\cpp\qt\prj1\build-prj1-Desktop_Qt_5_2_1_MinGW_32bit-Debug\debug\main.o:-1: In function `ZN5boost16re_detail_10690018basic_regex_parserIcNS_12regex_ traitsIcNS_16cpp_regex_traitsIcEEEEE4failENS_15regex_constan ts10error_typeEiSsi':

C:\MinGW\mingw32\boost32\include\boost-1_69\boost\regex\v4\basic_regex_parser.hpp:241: ошибка: undefined reference to `boost::regex_error::regex_error(std::string const&, boost::regex_constants::error_type, int)'

D:\cpp\qt\prj1\build-prj1-Desktop_Qt_5_2_1_MinGW_32bit-Debug\debug\main.o:-1: In function `ZN5boost16re_detail_10690019basic_regex_creatorIcNS_12regex _traitsIcNS_16cpp_regex_traitsIcEEEEE16fixup_recursionsEPNS0 _14re_syntax_baseE':

C:\MinGW\mingw32\boost32\include\boost-1_69\boost\regex\v4\basic_regex_creator.hpp:785: ошибка: undefined reference to `boost::regex_error::regex_error(std::string const&, boost::regex_constants::error_type, int)'

C:\MinGW\mingw32\boost32\include\boost-1_69\boost\regex\v4\basic_regex_creator.hpp:874: ошибка: undefined reference to `boost::regex_error::regex_error(std::string const&, boost::regex_constants::error_type, int)'

D:\cpp\qt\prj1\build-prj1-Desktop_Qt_5_2_1_MinGW_32bit-Debug\debug\main.o:-1: In function `ZN5boost16re_detail_10690019basic_regex_creatorIcNS_12regex _traitsIcNS_16cpp_regex_traitsIcEEEEE16create_startmapsEPNS0 _14re_syntax_baseE':

C:\MinGW\mingw32\boost32\include\boost-1_69\boost\regex\v4\basic_regex_creator.hpp:940: ошибка: undefined reference to `boost::regex_error::regex_error(std::string const&, boost::regex_constants::error_type, int)'

D:\cpp\qt\prj1\build-prj1-Desktop_Qt_5_2_1_MinGW_32bit-Debug\debug\main.o:-1: In function `ZN5boost16re_detail_10690019basic_regex_creatorIcNS_12regex _traitsIcNS_16cpp_regex_traitsIcEEEEE15create_startmapEPNS0_ 14re_syntax_baseEPhPjh':

C:\MinGW\mingw32\boost32\include\boost-1_69\boost\regex\v4\basic_regex_creator.hpp:1141: ошибка: undefined reference to `boost::regex_error::regex_error(std::string const&, boost::regex_constants::error_type, int)'

D:\cpp\qt\prj1\build-prj1-Desktop_Qt_5_2_1_MinGW_32bit-Debug\debug\main.o:-1: In function `ZNK5boost16re_detail_10690031cpp_regex_traits_implementatio nIcE18lookup_collatenameEPKcS4_':

C:\MinGW\mingw32\boost32\include\boost-1_69\boost\regex\v4\cpp_regex_traits.hpp:680: ошибка: undefined reference to `boost::re_detail_106900::lookup_default_collate_name(std::s tring const&)'

collect2.exe:-1: ошибка: error: ld returned 1 exit status
0

Помощь в написании контрольных, курсовых и дипломных работ здесь.

Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
28.04.2019, 11:02
Ответы с готовыми решениями:

RegEx Boost
Доброго времени суток. Ребята у меня во время выполнения программы, сама программа ругается на...

Проблема с boost-regex
Код программы: #include &lt;iostream&gt; #include &lt;boost/regex.hpp&gt; using namespace std; int...

Регулярные выражения Boost::regex
Всем привет! Юзаю библиотеку boost. В частности boost::regex. Столкнулся с такой проблемой. Как...

Не собирается проект с boost::regex
Установил boost, подключил все к Dev-C++(в параметрах компилятора в библиотеки добавил...

1
0 / 0 / 0
Регистрация: 28.04.2019
Сообщений: 2
01.05.2019, 11:24  [ТС] 2
Проблема решилась переустановкой mingw64 и зборкой бюста со следующими параметрами

Bash
1
b2.exe --prefix=c:/mingw-w64/x86_64-8.1.0-win32-seh-rt_v6-rev0/mingw64/boost64 --toolset=gcc --address-model=64 --variant=debug --target-os=windows --link=static --threading=multi --build-type=complete --runtime-link=static define=BOOST_USE_WINAPI_VERSION=0x0501 install
правда статические библиотеки все равно негенерятся с расширением *.a как сгенрить с разсширением *.lib я не знаю но похоже это ни начто не влияет

*.pro
---------------------------------------------
C++ (Qt)
1
2
3
4
5
INCLUDEPATH += c:/mingw-w64/x86_64-8.1.0-win32-seh-rt_v6-rev0/mingw64/boost64/include/boost-1_69
 
LIBS += "-Lc:/mingw-w64/x86_64-8.1.0-win32-seh-rt_v6-rev0/mingw64/boost64/lib" \
        -llibboost_system-mgw81-mt-x32-1_69 \
        -llibboost_regex-mgw81-mt-x64-1_69


main.cpp
---------------------------------------------
C++ (Qt)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
#include <iostream>
#include <string>
#include <boost/regex.hpp>
#include <boost/system/error_code.hpp>
#include <boost/core/lightweight_test.hpp>
 
using namespace std;
using namespace boost;
 
 
int main()
{
    std::string s = "Some people, when confronted with a problem, think "
        "\"I know, I'll use regular expressions.\" "
        "Now they have two problems.";
 
    boost::regex self_regex("REGULAR EXPRESSIONS", boost::regex_constants::ECMAScript | boost::regex_constants::icase);
    if (boost::regex_search(s, self_regex)) {
        std::cout << "Text contains the phrase 'regular expressions'\n";
    }
 
    boost::regex word_regex("(\\S+)");
    auto words_begin = boost::sregex_iterator(s.begin(), s.end(), word_regex);
    auto words_end =   boost::sregex_iterator();
 
    std::cout << "Found "
              << std::distance(words_begin, words_end)
              << " words\n";
 
 
    return boost::report_errors();
}
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
01.05.2019, 11:24

Необработанное исключение Boost::Regex
Только начал изучение буста - решил начать с регулярных выражений, т.к. они в данный момент...

Регулярные выражения Boost::regex
Всем привет, разбирал пример с учебника (регулярные выражения) и столкнулся не понятным явлением....

Хотелось бы улучшить программу с boost::regex!
Привет, всем! Сегодня установил boost и написал программу(тестовую), которая ищет требуемые мне...

boost::regex вытянуть нужные данные....
нужно вытянуть информацию переменной buy в строке.не как не могу правильно написать регулярное...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2021, vBulletin Solutions, Inc.