Opened 11 years ago
Last modified 11 years ago
#6588 new Bugs
boost::wave list_includes sample will not link with cpplexer
Reported by: | Owned by: | Hartmut Kaiser | |
---|---|---|---|
Milestone: | To Be Determined | Component: | wave |
Version: | Boost 1.48.0 | Severity: | Problem |
Keywords: | Cc: |
Description
After working around a jamfile problem where none of the wave samples will build(ticket will be posted shortly after this), list_includes (among others) still refuses to link.
This is with VS10 on WindowsXP, Boost 1.48.0 having been built succesfully with --build-type=complete, but not installed.
I apologize for the nasty formatting, but the Command Prompt just isn't very helpful.
C:\boost_1_48_0>b2.exe libs\wave\samples -q ...patience... ...patience... ...patience... ...found 2677 targets... ...updating 7 targets... msvc.link bin.v2\libs\wave\samples\list_includes\build\msvc-10.0\debug\asynch-exceptions-on\link-static\threading-multi\list_includes.exe Creating library bin.v2\libs\wave\samples\list_includes\build\msvc-10.0\debug\asynch-exceptions-o n\link-static\threading-multi\list_includes.lib and object bin.v2\libs\wave\samples\list_includes\bu ild\msvc-10.0\debug\asynch-exceptions-on\link-static\threading-multi\list_includes.exp list_includes.obj : error LNK2019: unresolved external symbol "public: static struct boost::wave::cp plexer::lex_input_interface<class boost::wave::cpplexer::lex_token<struct boost::wave::util::file_po sition<class boost::wave::util::flex_string<char,struct std::char_traits<char>,class std::allocator< char>,class boost::wave::util::CowString<class boost::wave::util::AllocatorStringStorage<char,class std::allocator<char> >,char *> > > > > * __cdecl boost::wave::cpplexer::lexertl::new_lexer_gen<class std::_String_iterator<char,struct std::char_traits<char>,class std::allocator<char> >,struct boost: :wave::util::file_position<class boost::wave::util::flex_string<char,struct std::char_traits<char>,c lass std::allocator<char>,class boost::wave::util::CowString<class boost::wave::util::AllocatorStrin gStorage<char,class std::allocator<char> >,char *> > > >::new_lexer(class std::_String_iterator<char ,struct std::char_traits<char>,class std::allocator<char> > const &,class std::_String_iterator<char ,struct std::char_traits<char>,class std::allocator<char> > const &,struct boost::wave::util::file_p osition<class boost::wave::util::flex_string<char,struct std::char_traits<char>,class std::allocator <char>,class boost::wave::util::CowString<class boost::wave::util::AllocatorStringStorage<char,class std::allocator<char> >,char *> > > const &,enum boost::wave::language_support)" (?new_lexer@?$new_l exer_gen@V?$_String_iterator@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@U?$file_position@V?$flex_ string@DU?$char_traits@D@std@@V?$allocator@D@2@V?$CowString@V?$AllocatorStringStorage@DV?$allocator@ D@std@@@util@wave@boost@@PAD@util@wave@boost@@@util@wave@boost@@@util@wave@boost@@@lexertl@cpplexer@ wave@boost@@SAPAU?$lex_input_interface@V?$lex_token@U?$file_position@V?$flex_string@DU?$char_traits@ D@std@@V?$allocator@D@2@V?$CowString@V?$AllocatorStringStorage@DV?$allocator@D@std@@@util@wave@boost @@PAD@util@wave@boost@@@util@wave@boost@@@util@wave@boost@@@cpplexer@wave@boost@@@345@ABV?$_String_i terator@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@0ABU?$file_position@V?$flex_string@DU?$char_tr aits@D@std@@V?$allocator@D@2@V?$CowString@V?$AllocatorStringStorage@DV?$allocator@D@std@@@util@wave@ boost@@PAD@util@wave@boost@@@util@wave@boost@@@util@45@W4language_support@45@@Z) referenced in funct ion "public: static struct boost::wave::cpplexer::lex_input_interface<class boost::wave::cpplexer::l ex_token<struct boost::wave::util::file_position<class boost::wave::util::flex_string<char,struct st d::char_traits<char>,class std::allocator<char>,class boost::wave::util::CowString<class boost::wave ::util::AllocatorStringStorage<char,class std::allocator<char> >,char *> > > > > * __cdecl boost::wa ve::cpplexer::lexertl::lexertl_input_interface<class boost::wave::cpplexer::lex_token<struct boost:: wave::util::file_position<class boost::wave::util::flex_string<char,struct std::char_traits<char>,cl ass std::allocator<char>,class boost::wave::util::CowString<class boost::wave::util::AllocatorString Storage<char,class std::allocator<char> >,char *> > > > >::new_lexer<class std::_String_iterator<cha r,struct std::char_traits<char>,class std::allocator<char> > >(class std::_String_iterator<char,stru ct std::char_traits<char>,class std::allocator<char> > const &,class std::_String_iterator<char,stru ct std::char_traits<char>,class std::allocator<char> > const &,struct boost::wave::util::file_positi on<class boost::wave::util::flex_string<char,struct std::char_traits<char>,class std::allocator<char >,class boost::wave::util::CowString<class boost::wave::util::AllocatorStringStorage<char,class std: :allocator<char> >,char *> > > const &,enum boost::wave::language_support)" (??$new_lexer@V?$_String _iterator@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@?$lexertl_input_interface@V?$lex_token@U?$f ile_position@V?$flex_string@DU?$char_traits@D@std@@V?$allocator@D@2@V?$CowString@V?$AllocatorStringS torage@DV?$allocator@D@std@@@util@wave@boost@@PAD@util@wave@boost@@@util@wave@boost@@@util@wave@boos t@@@cpplexer@wave@boost@@@lexertl@cpplexer@wave@boost@@SAPAU?$lex_input_interface@V?$lex_token@U?$fi le_position@V?$flex_string@DU?$char_traits@D@std@@V?$allocator@D@2@V?$CowString@V?$AllocatorStringSt orage@DV?$allocator@D@std@@@util@wave@boost@@PAD@util@wave@boost@@@util@wave@boost@@@util@wave@boost @@@cpplexer@wave@boost@@@234@ABV?$_String_iterator@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@0AB U?$file_position@V?$flex_string@DU?$char_traits@D@std@@V?$allocator@D@2@V?$CowString@V?$AllocatorStr ingStorage@DV?$allocator@D@std@@@util@wave@boost@@PAD@util@wave@boost@@@util@wave@boost@@@util@34@W4 language_support@34@@Z) bin.v2\libs\wave\samples\list_includes\build\msvc-10.0\debug\asynch-exceptions-on\link-static\thread ing-multi\list_includes.exe : fatal error LNK1120: 1 unresolved externals call "c:\Program Files\Microsoft Visual Studio 10.0\VC\vcvarsall.bat" x86 >nul link /NOLOGO /INCREMENTAL:NO /DEBUG /MACHINE:X86 /subsystem:console /out:"bin.v2\libs\wave\samples\l ist_includes\build\msvc-10.0\debug\asynch-exceptions-on\link-static\threading-multi\list_includes.ex e" @"bin.v2\libs\wave\samples\list_includes\build\msvc-10.0\debug\asynch-exceptions-on\link-static \threading-multi\list_includes.exe.rsp" if %ERRORLEVEL% NEQ 0 EXIT %ERRORLEVEL% ...failed msvc.link bin.v2\libs\wave\samples\list_includes\build\msvc-10.0\debug\asynch-exceptions-o n\link-static\threading-multi\list_includes.exe bin.v2\libs\wave\samples\list_includes\build\msvc-10 .0\debug\asynch-exceptions-on\link-static\threading-multi\list_includes.pdb... ...removing bin.v2\libs\wave\samples\list_includes\build\msvc-10.0\debug\asynch-exceptions-on\link-s tatic\threading-multi\list_includes.pdb ...failed updating 1 target... C:\boost_1_48_0>
Note:
See TracTickets
for help on using tickets.
I get a similar linking error with gcc 4.6.1:
list_includes.o: In function `boost::wave::cpplexer::lex_input_interface<boost::wave::cpplexer::lex_token<boost::wave::util::file_position<boost::wave::util::flex_string<char, std::char_traits<char>, std::allocator<char>, boost::wave::util::CowString<boost::wave::util::AllocatorStringStorage<char, std::allocator<char> >, char*> > > > >* boost::wave::cpplexer::lexertl::lexertl_input_interface<boost::wave::cpplexer::lex_token<boost::wave::util::file_position<boost::wave::util::flex_string<char, std::char_traits<char>, std::allocator<char>, boost::wave::util::CowString<boost::wave::util::AllocatorStringStorage<char, std::allocator<char> >, char*> > > > >::new_lexer<gnu_cxx::normal_iterator<char*, std::basic_string<char, std::char_traits<char>, std::allocator<char> > > >(gnu_cxx::normal_iterator<char*, std::basic_string<char, std::char_traits<char>, std::allocator<char> > > const&, gnu_cxx::normal_iterator<char*, std::basic_string<char, std::char_traits<char>, std::allocator<char> > > const&, boost::wave::util::file_position<boost::wave::util::flex_string<char, std::char_traits<char>, std::allocator<char>, boost::wave::util::CowString<boost::wave::util::AllocatorStringStorage<char, std::allocator<char> >, char*> > > const&, boost::wave::language_support)': list_includes.cpp:(.text._ZN5boost4wave8cpplexer7lexertl23lexertl_input_interfaceINS1_9lex_tokenINS0_4util13file_positionINS5_11flex_stringIcSt11char_traitsIcESaIcENS5_9CowStringINS5_22AllocatorStringStorageIcSA_EEPcEEEEEEEEE9new_lexerIN9gnu_cxx17normal_iteratorISE_SsEEEEPNS1_19lex_input_interfaceISI_EERKT_ST_RKSH_NS0_16language_supportE[boost::wave::cpplexer::lex_input_interface<boost::wave::cpplexer::lex_token<boost::wave::util::file_position<boost::wave::util::flex_string<char, std::char_traits<char>, std::allocator<char>, boost::wave::util::CowString<boost::wave::util::AllocatorStringStorage<char, std::allocator<char> >, char*> > > > >* boost::wave::cpplexer::lexertl::lexertl_input_interface<boost::wave::cpplexer::lex_token<boost::wave::util::file_position<boost::wave::util::flex_string<char, std::char_traits<char>, std::allocator<char>, boost::wave::util::CowString<boost::wave::util::AllocatorStringStorage<char, std::allocator<char> >, char*> > > > >::new_lexer<__gnu_cxx::__normal_iterator<char*, std::basic_string<char, std::char_traits<char>, std::allocator<char> > > >(__gnu_cxx::__normal_iterator<char*, std::basic_string<char, std::char_traits<char>, std::allocator<char> > > const&, __gnu_cxx::__normal_iterator<char*, std::basic_string<char, std::char_traits<char>, std::allocator<char> > > const&, boost::wave::util::file_position<boost::wave::util::flex_string<char, std::char_traits<char>, std::allocator<char>, boost::wave::util::CowString<boost::wave::util::AllocatorStringStorage<char, std::allocator<char> >, char*> > > const&, boost::wave::language_support)]+0x2a): undefined reference to `boost::wave::cpplexer::lexertl::new_lexer_gen<gnu_cxx::normal_iterator<char*, std::basic_string<char, std::char_traits<char>, std::allocator<char> > >, boost::wave::util::file_position<boost::wave::util::flex_string<char, std::char_traits<char>, std::allocator<char>, boost::wave::util::CowString<boost::wave::util::AllocatorStringStorage<char, std::allocator<char> >, char*> > > >::new_lexer(gnu_cxx::normal_iterator<char*, std::basic_string<char, std::char_traits<char>, std::allocator<char> > > const&, gnu_cxx::normal_iterator<char*, std::basic_string<char, std::char_traits<char>, std::allocator<char> > > const&, boost::wave::util::file_position<boost::wave::util::flex_string<char, std::char_traits<char>, std::allocator<char>, boost::wave::util::CowString<boost::wave::util::AllocatorStringStorage<char, std::allocator<char> >, char*> > > const&, boost::wave::language_support)' collect2: ld returned 1 exit status