Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 14
  1. #1

    [C++] problemi con regexp (libreria boost)

    Salve ragazzi, ho provato ad eseguire questo programma (con eclipse) ma non riesco a compilarlo, ho installato le librerie boost ma il programma non parte

    #include <boost/regex.hpp>
    #include <string>
    int main()
    {
    boost::regex pattern ("ao");
    std::string stringa ("Paolo Elefante");
    if (boost::regex_search (stringa, pattern)
    printf ("found\n");
    else
    printf("not found\n");
    return 0;
    }

  2. #2
    Moderatore di Programmazione L'avatar di alka
    Registrato dal
    Oct 2001
    residenza
    Reggio Emilia
    Messaggi
    24,301

    Moderazione

    Qual è l'errore che ottieni?
    E' una informazione da specificare obbligatoriamente.
    MARCO BREVEGLIERI
    Software and Web Developer, Teacher and Consultant

    Home | Blog | Delphi Podcast | Twitch | Altro...

  3. #3
    Non parte in che senso? Dà errori di compilazione? A runtime? La finestra appare e sparisce subito?
    Amaro C++, il gusto pieno dell'undefined behavior.

  4. #4
    ragazzi grazie per le risposte, purtroppo non posso dirvi l'errore perchè attualmente non sono sulla macchina, vi posso solo dire che l'errore me lo da duranta la compilazione. Dopo aver fatto il make mi dice c'è un errore. Scusatemi se sono stato poco preciso ma purtroppo ora non ho a disposizione il programma, domani vi posterò il messaggio di errore, grazie comunque

  5. #5
    Se il codice è esattamente quello che hai postato e per il resto hai configurato tutto per bene il problema probabilmente è che non hai chiuso la parentesi nell'if.
    Amaro C++, il gusto pieno dell'undefined behavior.

  6. #6
    Buongiorno a tutti, dopo aver scritto quel semplice programma nel make file ho inserito le seguenti istruzioni

    CINCLUDES += -I"$(BOOST_SDK_INC)"

    LIBSDIR += -L"$(BOOST_SDK_LIB)"

    dove nel file common.mk

    # BOOST SDK
    BOOST_SDK_PATH = $(IODEV_VOB)/BOOST_SDK/boost_1_44_0
    BOOST_SDK_LIB = $(BOOST_SDK_PATH)/lib
    BOOST_SDK_INC = $(BOOST_SDK_PATH)/include
    export BOOST_SDK_PATH
    #BOOST_LIBS =




    dopo aver compilato il programma mi esce questo erroe:

    .//program.obj: In function `boost::basic_regex<char, boost::regex_traits<char, boost::cpp_regex_traits<char> > >::assign(char const*, char const*, unsigned int)':
    /vobs/IO_Developments/BOOST_SDK/boost_1_44_0/include/boost/regex/v4/basic_regex.hpp:425: undefined reference to `boost::basic_regex<char, boost::regex_traits<char, boost::cpp_regex_traits<char> > >::do_assign(char const*, char const*, unsigned int)'
    .//program.obj: In function `perl_matcher':
    /vobs/IO_Developments/BOOST_SDK/boost_1_44_0/include/boost/regex/v4/perl_matcher.hpp:371: undefined reference to `boost::re_detail:erl_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::__norma l_iterator<char const*, std::basic_string<char, std::char_traits<char>, std::allocator<char> > > > >, boost::regex_traits<char, boost::cpp_regex_traits<char> > >::construct_init(boost::basic_regex<char, boost::regex_traits<char, boost::cpp_regex_traits<char> > > const&, boost::regex_constants::_match_flags)'
    .//program.obj: In function `bool boost::regex_search<__gnu_cxx::__normal_iterator<c har const*, std::basic_string<char, std::char_traits<char>, std::allocator<char> > >, char, boost::regex_traits<char, boost::cpp_regex_traits<char> > >(__gnu_cxx::__normal_iterator<char const*, std::basic_string<char, std::char_traits<char>, std::allocator<char> > >, __gnu_cxx::__normal_iterator<char const*, std::basic_string<char, std::char_traits<char>, std::allocator<char> > >, boost::basic_regex<char, boost::regex_traits<char, boost::cpp_regex_traits<char> > > const&, boost::regex_constants::_match_flags)':
    /vobs/IO_Developments/BOOST_SDK/boost_1_44_0/include/boost/regex/v4/regex_search.hpp:145: undefined reference to `boost::re_detail:erl_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::__norma l_iterator<char const*, std::basic_string<char, std::char_traits<char>, std::allocator<char> > > > >, boost::regex_traits<char, boost::cpp_regex_traits<char> > >::find()'
    .//program.obj: In function `save_state_init':
    /vobs/IO_Developments/BOOST_SDK/boost_1_44_0/include/boost/regex/v4/perl_matcher_non_recursive.hpp:107: undefined reference to `boost::re_detail::get_mem_block()'
    .//program.obj: In function `boost::cpp_regex_traits<char>::transform(char const*, char const*) const':
    /vobs/IO_Developments/BOOST_SDK/boost_1_44_0/include/boost/regex/v4/cpp_regex_traits.hpp:908: undefined reference to `boost::re_detail::cpp_regex_traits_implementation <char>::transform(char const*, char const*) const'
    .//program.obj: In function `boost::cpp_regex_traits<char>::transform_primary( char const*, char const*) const':
    /vobs/IO_Developments/BOOST_SDK/boost_1_44_0/include/boost/regex/v4/cpp_regex_traits.hpp:912: undefined reference to `boost::re_detail::cpp_regex_traits_implementation <char>::transform_primary(char const*, char const*) const'
    .//program.obj: In function `boost::re_detail::cpp_regex_traits_implementation <char>::error_string(boost::regex_constants::error _type) const':
    /vobs/IO_Developments/BOOST_SDK/boost_1_44_0/include/boost/regex/v4/cpp_regex_traits.hpp:442: undefined reference to `boost::re_detail::get_default_error_string(boost: :regex_constants::error_type)'
    /vobs/IO_Developments/BOOST_SDK/boost_1_44_0/include/boost/regex/v4/cpp_regex_traits.hpp:444: undefined reference to `boost::re_detail::get_default_error_string(boost: :regex_constants::error_type)'
    .//program.obj: In function `void boost::re_detail::raise_error<boost::regex_traits_ wrapper<boost::regex_traits<char, boost::cpp_regex_traits<char> > > >(boost::regex_traits_wrapper<boost::regex_traits< char, boost::cpp_regex_traits<char> > > const&, boost::regex_constants::error_type)':
    /vobs/IO_Developments/BOOST_SDK/boost_1_44_0/include/boost/regex/pattern_except.hpp:75: undefined reference to `boost::re_detail::raise_runtime_error(std::runtim e_error const&)'
    .//program.obj: In function `boost::re_detail:erl_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::__norma l_iterator<char const*, std::basic_string<char, std::char_traits<char>, std::allocator<char> > > > >, boost::regex_traits<char, boost::cpp_regex_traits<char> > >::extend_stack()':
    /vobs/IO_Developments/BOOST_SDK/boost_1_44_0/include/boost/regex/v4/perl_matcher_non_recursive.hpp:213: undefined reference to `boost::re_detail::get_mem_block()'
    .//program.obj: In function `boost::re_detail:erl_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::__norma l_iterator<char const*, std::basic_string<char, std::char_traits<char>, std::allocator<char> > > > >, boost::regex_traits<char, boost::cpp_regex_traits<char> > >::match_match()':
    /vobs/IO_Developments/BOOST_SDK/boost_1_44_0/include/boost/regex/v4/perl_matcher_non_recursive.hpp:973: undefined reference to `boost::match_results<__gnu_cxx::__normal_iterator <char const*, std::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<boost::sub_match<__gnu_cxx::__norma l_iterator<char const*, std::basic_string<char, std::char_traits<char>, std::allocator<char> > > > > >::maybe_assign(boost::match_results<__gnu_cxx::__ normal_iterator<char const*, std::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<boost::sub_match<__gnu_cxx::__norma l_iterator<char const*, std::basic_string<char, std::char_traits<char>, std::allocator<char> > > > > > const&)'
    .//program.obj: In function `boost::re_detail:erl_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::__norma l_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)':
    /vobs/IO_Developments/BOOST_SDK/boost_1_44_0/include/boost/regex/v4/perl_matcher_non_recursive.hpp:1117: undefined reference to `boost::re_detail:ut_mem_block(void*)'
    .//program.obj: In function `~save_state_init':
    /vobs/IO_Developments/BOOST_SDK/boost_1_44_0/include/boost/regex/v4/perl_matcher_non_recursive.hpp:115: undefined reference to `boost::re_detail:ut_mem_block(void*)'
    .//program.obj: In function `boost::re_detail:erl_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::__norma l_iterator<char const*, std::basic_string<char, std::char_traits<char>, std::allocator<char> > > > >, boost::regex_traits<char, boost::cpp_regex_traits<char> > >::find_imp()':
    /vobs/IO_Developments/BOOST_SDK/boost_1_44_0/include/boost/regex/v4/perl_matcher_common.hpp:292: undefined reference to `boost::re_detail::verify_options(unsigned int, boost::regex_constants::_match_flags)'
    collect2: ld returned 1 exit status
    make: *** [wizard] Error 1

    secondo voi devo aggiungere qualcosa nel makefile?

  7. #7
    Manca la direttiva che dice al compilatore di linkare la libreria delle regex. Su che piattaforma stai lavorando?
    Amaro C++, il gusto pieno dell'undefined behavior.

  8. #8
    il Sistema operativo è UNIX
    come inserisco questa direttiva?
    e in che file devo inserirla?
    Graize mille

  9. #9
    Dovrebbe essere -lboost_regex, il dove metterla dipende da come è fatto il makefile. In linea di massima se non hai separato compilazione e linking va sulla riga di comando del compilatore, se no su quella del linker.
    Amaro C++, il gusto pieno dell'undefined behavior.

  10. #10
    nella cartella del mio programma ho i seguenti file
    Makefile
    prgramm.cpp

    dopo aver fatto

    g++ program.cpp -lboost_regex

    mi esce questo messaggio:

    cc1plus: error: program.cpp: Permission denied

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2024 vBulletin Solutions, Inc. All rights reserved.