[C++] Codeblocks IDE en Boost (Compile errors)

Pagina: 1
Acties:

Onderwerpen


Acties:
  • 0 Henk 'm!

  • xehbit
  • Registratie: Februari 2009
  • Laatst online: 26-08 22:19
EDIT: Probleem opgelost
Ik heb de BJAM nog een keer uitgevoerd. Maar nu zonder de config-file, nu alles opgegeven via de console. Met "toolset=gcc" als parameter mee te geven is het dus gelukt. Nu zijn de lib-files ook anders en eindigen de extensies niet meer op .lib maar op .a Alles getest en het werkt ! Het bleek toch het probleem te zijn wat farlane heeft gezegt.

Bedankt !! Probleem opgelost !


Hey Tweakers,

Al enige tijd probeer ik een simpele TCP client te maken die teksten kan versturen en ontvangen. Met winsock wat ik altijd gebruikte kon ik alleen het programma compilen voor windows. Nu ik steeds meer met linux werk zou ik eigenlijk een applicatie schrijven die in windows als in linux werkt. Winsock valt dus gelijk af. Daarvoor heb ik wel een mooi alternatief gevonden Boost. Ik heb alle stappen gevolgd van deze pagina . Ik kom echter niet verder met stap 6. Waneer ik die code:
C++:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
#include <boost/regex.hpp>
#include <iostream>
#include <string>

int main()
{
    std::string line;
    boost::regex pat( "^Subject: (Re: |Aw: )*(.*)" );

    while (std::cin)
    {
        std::getline(std::cin, line);
        boost::smatch matches;
        if (boost::regex_match(line, matches, pat))
            std::cout << matches[2] << std::endl;
    }
}

compile krijg ik de volgende aantal fouten.
obj\Debug\main.o||In function `cpp_regex_traits_char_layer':|
C:\boost_1_47_0\boost\regex\v4\cpp_regex_traits.hpp|366|undefined reference to `boost::re_detail::cpp_regex_traits_char_layer<char>::init()'|
obj\Debug\main.o||In function `ZN5boost9re_detail11raw_storage6extendEj':|
C:\boost_1_47_0\boost\regex\v4\regex_raw_buffer.hpp|131|undefined reference to `boost::re_detail::raw_storage::resize(unsigned int)'|
obj\Debug\main.o||In function `save_state_init':|
C:\boost_1_47_0\boost\regex\v4\perl_matcher_non_recursive.hpp|107|undefined reference to `boost::re_detail::get_mem_block()'|
obj\Debug\main.o||In function `~save_state_init':|
C:\boost_1_47_0\boost\regex\v4\perl_matcher_non_recursive.hpp|115|undefined reference to `boost::re_detail::put_mem_block(void*)'|
obj\Debug\main.o||In function `ZN5boost9re_detail12perl_matcherIN9__gnu_cxx17__normal_iteratorIPKcSsEESaINS_9sub_matchIS6_EEENS_12regex_traitsIcNS_16cpp_regex_traitsIcEEEEE9match_impEv':|
C:\boost_1_47_0\boost\regex\v4\perl_matcher_common.hpp|206|undefined reference to `boost::re_detail::verify_options(unsigned int, boost::regex_constants::_match_flags)'|
obj\Debug\main.o||In function `ZN5boost9re_detail12perl_matcherIN9__gnu_cxx17__normal_iteratorIPKcSsEESaINS_9sub_matchIS6_EEENS_12regex_traitsIcNS_16cpp_regex_traitsIcEEEEE18unwind_extra_blockEb':|
C:\boost_1_47_0\boost\regex\v4\perl_matcher_non_recursive.hpp|1117|undefined reference to `boost::re_detail::put_mem_block(void*)'|
obj\Debug\main.o||In function `ZN5boost9re_detail11raise_errorINS_20regex_traits_wrapperINS_12regex_traitsIcNS_16cpp_regex_traitsIcEEEEEEEEvRKT_NS_15regex_constants10error_typeE':|
C:\boost_1_47_0\boost\regex\pattern_except.hpp|75|undefined reference to `boost::re_detail::raise_runtime_error(std::runtime_error const&)'|
obj\Debug\main.o||In function `ZN5boost9re_detail18basic_regex_parserIcNS_12regex_traitsIcNS_16cpp_regex_traitsIcEEEEE4failENS_15regex_constants10error_typeEiSsi':|
C:\boost_1_47_0\boost\regex\v4\basic_regex_parser.hpp|218|undefined reference to `boost::regex_error::regex_error(std::string const&, boost::regex_constants::error_type, int)'|
C:\boost_1_47_0\boost\regex\v4\basic_regex_parser.hpp|219|undefined reference to `boost::regex_error::raise() const'|
C:\boost_1_47_0\boost\regex\v4\basic_regex_parser.hpp|218|undefined reference to `boost::regex_error::~regex_error()'|
C:\boost_1_47_0\boost\regex\v4\basic_regex_parser.hpp|218|undefined reference to `boost::regex_error::~regex_error()'|
obj\Debug\main.o||In function `ZN5boost9re_detail19basic_regex_creatorIcNS_12regex_traitsIcNS_16cpp_regex_traitsIcEEEEE16fixup_recursionsEPNS0_14re_syntax_baseE':|
C:\boost_1_47_0\boost\regex\v4\basic_regex_creator.hpp|795|undefined reference to `boost::regex_error::regex_error(std::string const&, boost::regex_constants::error_type, int)'|
C:\boost_1_47_0\boost\regex\v4\basic_regex_creator.hpp|796|undefined reference to `boost::regex_error::raise() const'|
C:\boost_1_47_0\boost\regex\v4\basic_regex_creator.hpp|795|undefined reference to `boost::regex_error::~regex_error()'|
C:\boost_1_47_0\boost\regex\v4\basic_regex_creator.hpp|877|undefined reference to `boost::regex_error::regex_error(std::string const&, boost::regex_constants::error_type, int)'|
C:\boost_1_47_0\boost\regex\v4\basic_regex_creator.hpp|878|undefined reference to `boost::regex_error::raise() const'|
C:\boost_1_47_0\boost\regex\v4\basic_regex_creator.hpp|877|undefined reference to `boost::regex_error::~regex_error()'|
C:\boost_1_47_0\boost\regex\v4\basic_regex_creator.hpp|795|undefined reference to `boost::regex_error::~regex_error()'|
C:\boost_1_47_0\boost\regex\v4\basic_regex_creator.hpp|877|undefined reference to `boost::regex_error::~regex_error()'|
obj\Debug\main.o||In function `ZN5boost9re_detail19basic_regex_creatorIcNS_12regex_traitsIcNS_16cpp_regex_traitsIcEEEEE16create_startmapsEPNS0_14re_syntax_baseE':|
C:\boost_1_47_0\boost\regex\v4\basic_regex_creator.hpp|942|undefined reference to `boost::regex_error::regex_error(std::string const&, boost::regex_constants::error_type, int)'|
C:\boost_1_47_0\boost\regex\v4\basic_regex_creator.hpp|943|undefined reference to `boost::regex_error::raise() const'|
C:\boost_1_47_0\boost\regex\v4\basic_regex_creator.hpp|942|undefined reference to `boost::regex_error::~regex_error()'|
C:\boost_1_47_0\boost\regex\v4\basic_regex_creator.hpp|942|undefined reference to `boost::regex_error::~regex_error()'|
obj\Debug\main.o||In function `ZN5boost9re_detail19basic_regex_creatorIcNS_12regex_traitsIcNS_16cpp_regex_traitsIcEEEEE15create_startmapEPNS0_14re_syntax_baseEPhPjh':|
C:\boost_1_47_0\boost\regex\v4\basic_regex_creator.hpp|1133|undefined reference to `boost::regex_error::regex_error(std::string const&, boost::regex_constants::error_type, int)'|
C:\boost_1_47_0\boost\regex\v4\basic_regex_creator.hpp|1134|undefined reference to `boost::regex_error::raise() const'|
C:\boost_1_47_0\boost\regex\v4\basic_regex_creator.hpp|1133|undefined reference to `boost::regex_error::~regex_error()'|
C:\boost_1_47_0\boost\regex\v4\basic_regex_creator.hpp|1133|undefined reference to `boost::regex_error::~regex_error()'|
obj\Debug\main.o||In function `ZN5boost9re_detail12perl_matcherIN9__gnu_cxx17__normal_iteratorIPKcSsEESaINS_9sub_matchIS6_EEENS_12regex_traitsIcNS_16cpp_regex_traitsIcEEEEE12extend_stackEv':|
C:\boost_1_47_0\boost\regex\v4\perl_matcher_non_recursive.hpp|213|undefined reference to `boost::re_detail::get_mem_block()'|
obj\Debug\main.o||In function `ZNK5boost9re_detail31cpp_regex_traits_implementationIcE12error_stringENS_15regex_constants10error_typeE':|
C:\boost_1_47_0\boost\regex\v4\cpp_regex_traits.hpp|442|undefined reference to `boost::re_detail::get_default_error_string(boost::regex_constants::error_type)'|
C:\boost_1_47_0\boost\regex\v4\cpp_regex_traits.hpp|444|undefined reference to `boost::re_detail::get_default_error_string(boost::regex_constants::error_type)'|
obj\Debug\main.o||In function `ZN5boost9re_detail19basic_regex_creatorIcNS_12regex_traitsIcNS_16cpp_regex_traitsIcEEEEE12insert_stateEiNS0_19syntax_element_typeEj':|
C:\boost_1_47_0\boost\regex\v4\basic_regex_creator.hpp|320|undefined reference to `boost::re_detail::raw_storage::insert(unsigned int, unsigned int)'|
obj\Debug\main.o||In function `ZN5boost12object_cacheINS_9re_detail21cpp_regex_traits_baseIcEENS1_31cpp_regex_traits_implementationIcEEE3getERKS3_j':|
C:\boost_1_47_0\boost\regex\pending\object_cache.hpp|66|undefined reference to `boost::scoped_static_mutex_lock::scoped_static_mutex_lock(boost::static_mutex&, bool)'|
C:\boost_1_47_0\boost\regex\pending\object_cache.hpp|66|undefined reference to `boost::scoped_static_mutex_lock::~scoped_static_mutex_lock()'|
C:\boost_1_47_0\boost\regex\pending\object_cache.hpp|66|undefined reference to `boost::scoped_static_mutex_lock::~scoped_static_mutex_lock()'|
obj\Debug\main.o||In function `ZNK5boost9re_detail31cpp_regex_traits_implementationIcE18lookup_collatenameEPKcS4_':|
C:\boost_1_47_0\boost\regex\v4\cpp_regex_traits.hpp|633|undefined reference to `boost::re_detail::lookup_default_collate_name(std::string const&)'|
obj\Debug\main.o||In function `ZN5boost9re_detail31cpp_regex_traits_implementationIcE4initEv':|
C:\boost_1_47_0\boost\regex\v4\cpp_regex_traits.hpp|675|undefined reference to `boost::re_detail::raise_runtime_error(std::runtime_error const&)'|
C:\boost_1_47_0\boost\regex\v4\cpp_regex_traits.hpp|690|undefined reference to `boost::re_detail::get_default_error_string(boost::regex_constants::error_type)'|
obj\Debug\main.o||In function `ZN5boost16cpp_regex_traitsIcE16get_catalog_nameEv':|
C:\boost_1_47_0\boost\regex\v4\cpp_regex_traits.hpp|1059|undefined reference to `boost::scoped_static_mutex_lock::scoped_static_mutex_lock(boost::static_mutex&, bool)'|
C:\boost_1_47_0\boost\regex\v4\cpp_regex_traits.hpp|1059|undefined reference to `boost::scoped_static_mutex_lock::~scoped_static_mutex_lock()'|
C:\boost_1_47_0\boost\regex\v4\cpp_regex_traits.hpp|1059|undefined reference to `boost::scoped_static_mutex_lock::~scoped_static_mutex_lock()'|

Ik heb de libs, en includes in de IDE toegevoegd aan de compiler instellingen van GCC (MinGW) zie schermafdruk.
Afbeeldingslocatie: http://img832.imageshack.us/img832/3632/001jg.png

Ik heb verder alle stappen gevolgd zoals aangegeven op boost.org
Misschien iemand die weet wat ik over het hoofd zie? En die er een opossing voor heeft.

Acties:
  • 0 Henk 'm!

  • farlane
  • Registratie: Maart 2000
  • Laatst online: 15:26
De library namen impliceren dat de libs die je probeert te linken voor de MSVC compiler zijn.

Somniferous whisperings of scarlet fields. Sleep calling me and in my dreams i wander. My reality is abandoned (I traverse afar). Not a care if I never everwake.


Acties:
  • 0 Henk 'm!

  • xehbit
  • Registratie: Februari 2009
  • Laatst online: 26-08 22:19
farlane schreef op zondag 14 augustus 2011 @ 22:45:
De library namen impliceren dat de libs die je probeert te linken voor de MSVC compiler zijn.
In de bjam config file heb ik toch echt opgegeven dat het voor GCC moest zijn.

code:
1
2
3
4
5
import option ; 
 
using gcc ; 
 
option.set keep-going : false ;

Acties:
  • 0 Henk 'm!

  • farlane
  • Registratie: Maart 2000
  • Laatst online: 15:26
Dragon707 schreef op zondag 14 augustus 2011 @ 23:01:
In de bjam config file heb ik toch echt opgegeven dat het voor GCC moest zijn.
Toch wijzen je meldingen op linker fouten, maw de linker kan de juiste namen niet vinden in de libs die je linked.
Dat komt waarschijnlijk toch doordat de libs die je linked niet de juiste zijn, of niet de juiste symbols bevatten. Of doordat ze helemaal niet meegelinked worden omdat de linker ze niet kan vinden/niet accepteert.

Somniferous whisperings of scarlet fields. Sleep calling me and in my dreams i wander. My reality is abandoned (I traverse afar). Not a care if I never everwake.


Acties:
  • 0 Henk 'm!

  • Orwell
  • Registratie: December 2009
  • Laatst online: 08-09 22:11
Heb ook nog nooit MSVC-libs kunnen gebruiken in GCC of MinGW.

Probeer ze is te converteren met reimp en dlltool.

Acties:
  • 0 Henk 'm!

  • xehbit
  • Registratie: Februari 2009
  • Laatst online: 26-08 22:19
Ik heb de BJAM nog een keer uitgevoerd. Maar nu zonder de config-file, nu alles opgegeven via de console. Met "toolset=gcc" als parameter mee te geven is het dus gelukt. Nu zijn de lib-files ook anders en eindigen de extensies niet meer op .lib maar op .a Alles getest en het werkt ! Het bleek toch het probleem te zijn wat farlane heeft gezegt.

Bedankt !! Probleem opgelost !
Pagina: 1