Bonjour à tous,

je ne savais pas trop où poster ce problème mais je pense que c'est l'endroit le plus approprié. le titre du post est on ne peut plus explicite j'ai de très nombreuses erreurs lorsque j'essaie de compiler un code utilisant boost::filesystem.

Je suis sur codeblocks sur windows 7 (64 bits) pour ceux que ça intéresse, et voici un code pris directement sur le site de boost qui entraîne un tas d'erreurs :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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
 
#include <iostream>
#include <boost/filesystem/path.hpp>
#include <boost/filesystem/operations.hpp>
#include <boost/filesystem/convenience.hpp>
 
void iterThroughDirectories(const boost::filesystem::path& path);
 
int main( int argc, char *argv[])
{
  iterThroughDirectories(boost::filesystem::initial_path());
}
 
void iterThroughDirectories(const boost::filesystem::path& path)
{
  std::cout << "Entering : " << path.string() << std::endl;
  for(boost::filesystem::directory_iterator it(path); it != boost::filesystem::directory_iterator(); ++it)
  {
	  if(boost::filesystem::is_directory(*it))
	  {
		  iterThroughDirectories(*it);
	  }
    else if(boost::filesystem::extension(*it) == ".exe")
    {
      boost::filesystem::path newfile = boost::filesystem::change_extension(*it, ".bak");
      boost::filesystem::copy_file(*it, newfile);
    }
  }
}
Voici les erreurs de link :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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
obj\Release\main.o: dans la fonction « _ZNK5boost10filesystem4path6stringEv »:
c:/mingw_/mingw/bin/../lib/gcc/mingw32/4.7.0/../../../../include/boost/filesystem/path.hpp:367: référence indéfinie vers « __imp___ZN5boost10filesystem4path7codecvtEv »
obj\Release\main.o: dans la fonction « directory_iterator »:
c:/mingw_/mingw/bin/../lib/gcc/mingw32/4.7.0/../../../../include/boost/filesystem/operations.hpp:682: référence indéfinie vers « __imp___ZN5boost10filesystem6detail28directory_iterator_constructERNS0_18directory_iteratorERKNS0_4pathEPNS_6system10error_codeE »
obj\Release\main.o: dans la fonction « path<boost::filesystem::directory_entry> »:
c:/mingw_/mingw/bin/../lib/gcc/mingw32/4.7.0/../../../../include/boost/filesystem/path.hpp:139: référence indéfinie vers « __imp___ZN5boost10filesystem11path_traits8dispatchERKNS0_15directory_entryERSbIwSt11char_traitsIwESaIwEERKSt7codecvtIwciE »
obj\Release\main.o: dans la fonction « _ZN5boost10filesystem18directory_iterator9incrementEv »:
c:/mingw_/mingw/bin/../lib/gcc/mingw32/4.7.0/../../../../include/boost/filesystem/operations.hpp:718: référence indéfinie vers « __imp___ZN5boost10filesystem6detail28directory_iterator_incrementERNS0_18directory_iteratorEPNS_6system10error_codeE »
obj\Release\main.o: dans la fonction « is_directory »:
c:/mingw_/mingw/bin/../lib/gcc/mingw32/4.7.0/../../../../include/boost/filesystem/operations.hpp:294: référence indéfinie vers « __imp___ZN5boost10filesystem6detail6statusERKNS0_4pathEPNS_6system10error_codeE »
obj\Release\main.o: dans la fonction « extension »:
c:/mingw_/mingw/bin/../lib/gcc/mingw32/4.7.0/../../../../include/boost/filesystem/convenience.hpp:36: référence indéfinie vers « __imp___ZNK5boost10filesystem4path9extensionEv »
obj\Release\main.o: dans la fonction « change_extension »:
c:/mingw_/mingw/bin/../lib/gcc/mingw32/4.7.0/../../../../include/boost/filesystem/convenience.hpp:47: référence indéfinie vers « __imp___ZN5boost10filesystem4path17replace_extensionERKS1_ »
obj\Release\main.o: dans la fonction « copy_file »:
c:/mingw_/mingw/bin/../lib/gcc/mingw32/4.7.0/../../../../include/boost/filesystem/operations.hpp:384: référence indéfinie vers « __imp___ZN5boost10filesystem6detail9copy_fileERKNS0_4pathES4_NS0_11copy_optionEPNS_6system10error_codeE »
obj\Release\main.o: dans la fonction « _ZNK5boost10filesystem4path6stringERKSt7codecvtIwciE »:
c:/mingw_/mingw/bin/../lib/gcc/mingw32/4.7.0/../../../../include/boost/filesystem/path.hpp:373: référence indéfinie vers « __imp___ZN5boost10filesystem11path_traits7convertEPKwS3_RSsRKSt7codecvtIwciE »
obj\Release\main.o: dans la fonction « dispatch<std::basic_string<wchar_t> > »:
c:/mingw_/mingw/bin/../lib/gcc/mingw32/4.7.0/../../../../include/boost/filesystem/path_traits.hpp:174: référence indéfinie vers « __imp___ZN5boost10filesystem11path_traits7convertEPKcS3_RSbIwSt11char_traitsIwESaIwEERKSt7codecvtIwciE »
obj\Release\main.o: dans la fonction « _ZNK5boost10filesystem4path6stringERKSt7codecvtIwciE »:
c:/mingw_/mingw/bin/../lib/gcc/mingw32/4.7.0/../../../../include/boost/filesystem/path.hpp:373: référence indéfinie vers « __imp___ZN5boost10filesystem11path_traits7convertEPKwS3_RSsRKSt7codecvtIwciE »
obj\Release\main.o: dans la fonction « ~dir_itr_imp »:
c:/mingw_/mingw/bin/../lib/gcc/mingw32/4.7.0/../../../../include/boost/filesystem/operations.hpp:651: référence indéfinie vers « __imp___ZN5boost10filesystem6detail13dir_itr_closeERPv »
obj\Release\main.o: dans la fonction « _ZN5boost10filesystem6detail11dir_itr_impD1Ev »:
c:/mingw_/mingw/bin/../lib/gcc/mingw32/4.7.0/../../../../include/boost/filesystem/operations.hpp:651: référence indéfinie vers « __imp___ZN5boost10filesystem6detail13dir_itr_closeERPv »
obj\Release\main.o: dans la fonction « initial_path »:
c:/mingw_/mingw/bin/../lib/gcc/mingw32/4.7.0/../../../../include/boost/filesystem/operations.hpp:459: référence indéfinie vers « __imp___ZN5boost10filesystem6detail12initial_pathEPNS_6system10error_codeE »
obj\Release\main.o: dans la fonction « __static_initialization_and_destruction_0 »:
c:/mingw_/mingw/bin/../lib/gcc/mingw32/4.7.0/../../../../include/boost/system/error_code.hpp:214: référence indéfinie vers « __imp___ZN5boost6system16generic_categoryEv »
c:/mingw_/mingw/bin/../lib/gcc/mingw32/4.7.0/../../../../include/boost/system/error_code.hpp:216: référence indéfinie vers « __imp___ZN5boost6system15system_categoryEv »
J'ai essayé de me renseigner sur internet mais je n'ai rien trouvé de probant.

Si quelqu'un a déjà eu ce genre de problème qu'il n'hésite pas à me dire comment il a fait pour le résoudre car, étant sur la version 1.52 de boost avec gcc 4.7 je ne vois pas ce qui cloche !

J'ajouterai également que l'utilisation de boost/regex pose également le même genre de problèmes :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
c:/mingw_/mingw/bin/../lib/gcc/mingw32/4.7.0/../../../../include/boost/regex/v4/perl_matcher_non_recursive.hpp:1117: référence indéfinie vers « __imp___ZN5boost9re_detail13put_mem_blockEPv »
obj\Release\main.o: dans la fonction « _ZN5boost9re_detail11raw_storage6extendEj »:
c:/mingw_/mingw/bin/../lib/gcc/mingw32/4.7.0/../../../../include/boost/regex/v4/regex_raw_buffer.hpp:131: référence indéfinie vers « __imp___ZN5boost9re_detail11raw_storage6resizeEj »
c:/mingw_/mingw/bin/../lib/gcc/mingw32/4.7.0/../../../../include/boost/regex/v4/regex_raw_buffer.hpp:131: référence indéfinie vers « __imp___ZN5boost9re_detail11raw_storage6resizeEj »
obj\Release\main.o: dans la fonction « _ZN5boost9re_detail18basic_regex_parserIcNS_12regex_traitsIcNS_16cpp_regex_traitsIcEEEEE4failENS_15regex_constants10error_typeEiSsi »:
c:/mingw_/mingw/bin/../lib/gcc/mingw32/4.7.0/../../../../include/boost/regex/v4/basic_regex_parser.hpp:220: référence indéfinie vers « __imp___ZN5boost11regex_errorC1ERKSsNS_15regex_constants10error_typeEi »
c:/mingw_/mingw/bin/../lib/gcc/mingw32/4.7.0/../../../../include/boost/regex/v4/basic_regex_parser.hpp:221: référence indéfinie vers « __imp___ZNK5boost11regex_error5raiseEv »
c:/mingw_/mingw/bin/../lib/gcc/mingw32/4.7.0/../../../../include/boost/regex/v4/basic_regex_parser.hpp:221: référence indéfinie vers « __imp___ZN5boost11regex_errorD1Ev »
c:/mingw_/mingw/bin/../lib/gcc/mingw32/4.7.0/../../../../include/boost/regex/v4/basic_regex_parser.hpp:221: référence indéfinie vers « __imp___ZN5boost11regex_errorD1Ev »
obj\Release\main.o: dans la fonction « _ZN5boost9re_detail19basic_regex_creatorIcNS_12regex_traitsIcNS_16cpp_regex_traitsIcEEEEE16fixup_recursionsEPNS0_14re_syntax_baseE »:
c:/mingw_/mingw/bin/../lib/gcc/mingw32/4.7.0/../../../../include/boost/regex/v4/basic_regex_creator.hpp:793: référence indéfinie vers « __imp___ZN5boost11regex_errorC1ERKSsNS_15regex_constants10error_typeEi »
c:/mingw_/mingw/bin/../lib/gcc/mingw32/4.7.0/../../../../include/boost/regex/v4/basic_regex_creator.hpp:794: référence indéfinie vers « __imp___ZNK5boost11regex_error5raiseEv »
c:/mingw_/mingw/bin/../lib/gcc/mingw32/4.7.0/../../../../include/boost/regex/v4/basic_regex_creator.hpp:875: référence indéfinie vers « __imp___ZN5boost11regex_errorC1ERKSsNS_15regex_constants10error_typeEi »
c:/mingw_/mingw/bin/../lib/gcc/mingw32/4.7.0/../../../../include/boost/regex/v4/basic_regex_creator.hpp:876: référence indéfinie vers « __imp___ZNK5boost11regex_error5raiseEv »
c:/mingw_/mingw/bin/../lib/gcc/mingw32/4.7.0/../../../../include/boost/regex/v4/basic_regex_creator.hpp:876: référence indéfinie vers « __imp___ZN5boost11regex_errorD1Ev »
c:/mingw_/mingw/bin/../lib/gcc/mingw32/4.7.0/../../../../include/boost/regex/v4/basic_regex_creator.hpp:876: référence indéfinie vers « __imp___ZN5boost11regex_errorD1Ev »
obj\Release\main.o: dans la fonction « _ZN5boost9re_detail19basic_regex_creatorIcNS_12regex_traitsIcNS_16cpp_regex_traitsIcEEEEE12insert_stateEiNS0_19syntax_element_typeEj »:
c:/mingw_/mingw/bin/../lib/gcc/mingw32/4.7.0/../../../../include/boost/regex/v4/basic_regex_creator.hpp:321: référence indéfinie vers « __imp___ZN5boost9re_detail11raw_storage6insertEjj »
obj\Release\main.o: dans la fonction « _ZN5boost9re_detail19basic_regex_creatorIcNS_12regex_traitsIcNS_16cpp_regex_traitsIcEEEEE15create_startmapEPNS0_14re_syntax_baseEPhPjh »:
c:/mingw_/mingw/bin/../lib/gcc/mingw32/4.7.0/../../../../include/boost/regex/v4/basic_regex_creator.hpp:1143: référence indéfinie vers « __imp___ZN5boost11regex_errorC1ERKSsNS_15regex_constants10error_typeEi »
c:/mingw_/mingw/bin/../lib/gcc/mingw32/4.7.0/../../../../include/boost/regex/v4/basic_regex_creator.hpp:1144: référence indéfinie vers « __imp___ZNK5boost11regex_error5raiseEv »
c:/mingw_/mingw/bin/../lib/gcc/mingw32/4.7.0/../../../../include/boost/regex/v4/basic_regex_creator.hpp:1144: référence indéfinie vers « __imp___ZN5boost11regex_errorD1Ev »
c:/mingw_/mingw/bin/../lib/gcc/mingw32/4.7.0/../../../../include/boost/regex/v4/basic_regex_creator.hpp:1144: référence indéfinie vers « __imp___ZN5boost11regex_errorD1Ev »
obj\Release\main.o: dans la fonction « _ZN5boost9re_detail11raw_storage6extendEj »:
c:/mingw_/mingw/bin/../lib/gcc/mingw32/4.7.0/../../../../include/boost/regex/v4/regex_raw_buffer.hpp:131: référence indéfinie vers « __imp___ZN5boost9re_detail11raw_storage6resizeEj »
c:/mingw_/mingw/bin/../lib/gcc/mingw32/4.7.0/../../../../include/boost/regex/v4/regex_raw_buffer.hpp:131: référence indéfinie vers « __imp___ZN5boost9re_detail11raw_storage6resizeEj »
c:/mingw_/mingw/bin/../lib/gcc/mingw32/4.7.0/../../../../include/boost/regex/v4/regex_raw_buffer.hpp:131: référence indéfinie vers « __imp___ZN5boost9re_detail11raw_storage6resizeEj »
obj\Release\main.o: dans la fonction « _ZNK5boost9re_detail31cpp_regex_traits_implementationIcE12error_stringENS_15regex_constants10error_typeE »:
c:/mingw_/mingw/bin/../lib/gcc/mingw32/4.7.0/../../../../include/boost/regex/v4/cpp_regex_traits.hpp:444: référence indéfinie vers « __imp___ZN5boost9re_detail24get_default_error_stringENS_15regex_constants10error_typeE »
obj\Release\main.o: dans la fonction « _ZN5boost9re_detail11raise_errorINS_20regex_traits_wrapperINS_12regex_traitsIcNS_16cpp_regex_traitsIcEEEEEEEEvRKT_NS_15regex_constants10error_typeE »:
c:/mingw_/mingw/bin/../lib/gcc/mingw32/4.7.0/../../../../include/boost/regex/pattern_except.hpp:75: référence indéfinie vers « __imp___ZN5boost9re_detail19raise_runtime_errorERKSt13runtime_error »
obj\Release\main.o: dans la fonction « _ZNK5boost9re_detail31cpp_regex_traits_implementationIcE12error_stringENS_15regex_constants10error_typeE »:
c:/mingw_/mingw/bin/../lib/gcc/mingw32/4.7.0/../../../../include/boost/regex/v4/cpp_regex_traits.hpp:442: référence indéfinie vers « __imp___ZN5boost9re_detail24get_default_error_stringENS_15regex_constants10error_typeE »
obj\Release\main.o: dans la fonction « _ZN5boost9re_detail12perl_matcherIN9__gnu_cxx17__normal_iteratorIPKcSsEESaINS_9sub_matchIS6_EEENS_12regex_traitsIcNS_16cpp_regex_traitsIcEEEEE12extend_stackEv »:
c:/mingw_/mingw/bin/../lib/gcc/mingw32/4.7.0/../../../../include/boost/regex/v4/perl_matcher_non_recursive.hpp:213: référence indéfinie vers « __imp___ZN5boost9re_detail13get_mem_blockEv »
obj\Release\main.o: dans la fonction « save_state_init »:
c:/mingw_/mingw/bin/../lib/gcc/mingw32/4.7.0/../../../../include/boost/regex/v4/perl_matcher_non_recursive.hpp:107: référence indéfinie vers « __imp___ZN5boost9re_detail13get_mem_blockEv »
obj\Release\main.o: dans la fonction « _ZN5boost9re_detail12perl_matcherIN9__gnu_cxx17__normal_iteratorIPKcSsEESaINS_9sub_matchIS6_EEENS_12regex_traitsIcNS_16cpp_regex_traitsIcEEEEE9match_impEv »:
c:/mingw_/mingw/bin/../lib/gcc/mingw32/4.7.0/../../../../include/boost/regex/v4/perl_matcher_common.hpp:206: référence indéfinie vers « __imp___ZN5boost9re_detail14verify_optionsEjNS_15regex_constants12_match_flagsE »
obj\Release\main.o: dans la fonction « ~save_state_init »:
c:/mingw_/mingw/bin/../lib/gcc/mingw32/4.7.0/../../../../include/boost/regex/v4/perl_matcher_non_recursive.hpp:115: référence indéfinie vers « __imp___ZN5boost9re_detail13put_mem_blockEPv »
c:/mingw_/mingw/bin/../lib/gcc/mingw32/4.7.0/../../../../include/boost/regex/v4/perl_matcher_non_recursive.hpp:115: référence indéfinie vers « __imp___ZN5boost9re_detail13put_mem_blockEPv »
obj\Release\main.o: dans la fonction « _ZNK5boost9re_detail31cpp_regex_traits_implementationIcE12error_stringENS_15regex_constants10error_typeE »:
c:/mingw_/mingw/bin/../lib/gcc/mingw32/4.7.0/../../../../include/boost/regex/v4/cpp_regex_traits.hpp:444: référence indéfinie vers « __imp___ZN5boost9re_detail24get_default_error_stringENS_15regex_constants10error_typeE »
c:/mingw_/mingw/bin/../lib/gcc/mingw32/4.7.0/../../../../include/boost/regex/v4/cpp_regex_traits.hpp:442: référence indéfinie vers « __imp___ZN5boost9re_detail24get_default_error_stringENS_15regex_constants10error_typeE »
obj\Release\main.o: dans la fonction « _ZN5boost9re_detail19basic_regex_creatorIcNS_12regex_traitsIcNS_16cpp_regex_traitsIcEEEEE16create_startmapsEPNS0_14re_syntax_baseE »:
c:/mingw_/mingw/bin/../lib/gcc/mingw32/4.7.0/../../../../include/boost/regex/v4/basic_regex_creator.hpp:940: référence indéfinie vers « __imp___ZN5boost11regex_errorC1ERKSsNS_15regex_constants10error_typeEi »
c:/mingw_/mingw/bin/../lib/gcc/mingw32/4.7.0/../../../../include/boost/regex/v4/basic_regex_creator.hpp:941: référence indéfinie vers « __imp___ZNK5boost11regex_error5raiseEv »
c:/mingw_/mingw/bin/../lib/gcc/mingw32/4.7.0/../../../../include/boost/regex/v4/basic_regex_creator.hpp:941: référence indéfinie vers « __imp___ZN5boost11regex_errorD1Ev »
c:/mingw_/mingw/bin/../lib/gcc/mingw32/4.7.0/../../../../include/boost/regex/v4/basic_regex_creator.hpp:941: référence indéfinie vers « __imp___ZN5boost11regex_errorD1Ev »
obj\Release\main.o: dans la fonction « _ZN5boost9re_detail11raw_storage6extendEj »:
c:/mingw_/mingw/bin/../lib/gcc/mingw32/4.7.0/../../../../include/boost/regex/v4/regex_raw_buffer.hpp:131: référence indéfinie vers « __imp___ZN5boost9re_detail11raw_storage6resizeEj »
obj\Release\main.o: dans la fonction « _ZNK5boost9re_detail31cpp_regex_traits_implementationIcE18lookup_collatenameEPKcS4_ »:
c:/mingw_/mingw/bin/../lib/gcc/mingw32/4.7.0/../../../../include/boost/regex/v4/cpp_regex_traits.hpp:633: référence indéfinie vers « __imp___ZN5boost9re_detail27lookup_default_collate_nameERKSs »
obj\Release\main.o: dans la fonction « _ZN5boost16cpp_regex_traitsIcE16get_catalog_nameEv »:
c:/mingw_/mingw/bin/../lib/gcc/mingw32/4.7.0/../../../../include/boost/regex/v4/cpp_regex_traits.hpp:1059: référence indéfinie vers « __imp___ZN5boost24scoped_static_mutex_lockC1ERNS_12static_mutexEb »
c:/mingw_/mingw/bin/../lib/gcc/mingw32/4.7.0/../../../../include/boost/regex/v4/cpp_regex_traits.hpp:1062: référence indéfinie vers « __imp___ZN5boost24scoped_static_mutex_lockD1Ev »
c:/mingw_/mingw/bin/../lib/gcc/mingw32/4.7.0/../../../../include/boost/regex/v4/cpp_regex_traits.hpp:1062: référence indéfinie vers « __imp___ZN5boost24scoped_static_mutex_lockD1Ev »
obj\Release\main.o: dans la fonction « _ZN5boost9re_detail31cpp_regex_traits_implementationIcE4initEv »:
c:/mingw_/mingw/bin/../lib/gcc/mingw32/4.7.0/../../../../include/boost/regex/v4/cpp_regex_traits.hpp:690: référence indéfinie vers « __imp___ZN5boost9re_detail24get_default_error_stringENS_15regex_constants10error_typeE »
c:/mingw_/mingw/bin/../lib/gcc/mingw32/4.7.0/../../../../include/boost/regex/v4/cpp_regex_traits.hpp:675: référence indéfinie vers « __imp___ZN5boost9re_detail19raise_runtime_errorERKSt13runtime_error »
obj\Release\main.o: dans la fonction « cpp_regex_traits_char_layer »:
c:/mingw_/mingw/bin/../lib/gcc/mingw32/4.7.0/../../../../include/boost/regex/v4/cpp_regex_traits.hpp:366: référence indéfinie vers « __imp___ZN5boost9re_detail27cpp_regex_traits_char_layerIcE4initEv »
obj\Release\main.o: dans la fonction « _ZN5boost12object_cacheINS_9re_detail21cpp_regex_traits_baseIcEENS1_31cpp_regex_traits_implementationIcEEE3getERKS3_j »:
c:/mingw_/mingw/bin/../lib/gcc/mingw32/4.7.0/../../../../include/boost/regex/pending/object_cache.hpp:66: référence indéfinie vers « __imp___ZN5boost24scoped_static_mutex_lockC1ERNS_12static_mutexEb »
c:/mingw_/mingw/bin/../lib/gcc/mingw32/4.7.0/../../../../include/boost/regex/pending/object_cache.hpp:75: référence indéfinie vers « __imp___ZN5boost24scoped_static_mutex_lockD1Ev »
c:/mingw_/mingw/bin/../lib/gcc/mingw32/4.7.0/../../../../include/boost/regex/pending/object_cache.hpp:75: référence indéfinie vers « __imp___ZN5boost24scoped_static_mutex_lockD1Ev »
Pour ce code :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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;
    }
}