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 :
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 #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); } } }
J'ai essayé de me renseigner sur internet mais je n'ai rien trouvé de probant.
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 »
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 :
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
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 »
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; } }
Partager