Bilblioteka boost. budowanie plików lib
Ostatnio zmodyfikowano 2016-04-12 19:44
polewa Temat założony przez niniejszego użytkownika |
» 2016-04-12 15:08:27 #include <iostream> #include <vector> #include <cstdlib>
#include <cmath> #include <boost/program_options.hpp>
namespace po = boost::program_options;
int main( int argc, char * argv[] ) { po::options_description desc( "Allowed options" ); desc.add_options() ( "help", "produce help message" ) ( "NumberList,N", po::value < std::vector < int > >()->multitoken(), "List of numbers." ) ; po::variables_map vm; po::store( po::parse_command_line( argc, argv, desc ), vm ); po::notify( vm ); if( vm.count( "help" ) ) { std::cout << desc << std::endl;; return 1; } if( vm.count( "NumberList" ) ) { std::cout << "count: " << vm.count( "NumberList" ) << std::endl; std::vector < int > NumberList = vm[ "NumberList" ].as < std::vector < int > >(); std::cout << "NumberList is length " << NumberList.size() << std::endl; for( unsigned int i = 0; i < NumberList.size(); i++ ) { std::cout << NumberList[ i ] << std::endl; } } else { std::cout << "NumberList was not set." << std::endl; } return 0; } Znalazłem taki przykład w internecie i kompiluje tak: g++ -o prog main.cpp -lboost_program_options-mgw49-mt-1_60 i dostaje takie błędy linkera: C:/MiniGW/bin/../lib/gcc/mingw32/5.1.0/../../../libboost_program_options-mgw49-mt-1_60.a(value_semantic.o): duplicate section `.rdata$_ZTVN5boost16exception_detail19error_info_injectorINS_17bad_function_callEEE[__ZTVN5boost16exception_detail19error_info_injectorINS_17bad_function_callEEE]' has different size C:/MiniGW/bin/../lib/gcc/mingw32/5.1.0/../../../libboost_program_options-mgw49-mt-1_60.a(value_semantic.o): duplicate section `.rdata$_ZTVN5boost16exception_detail10clone_implINS0_19error_info_injectorINS_17bad_function_callEEEEE[__ZTVN5boost16exception_detail10clone_implINS0_19error_info_injectorINS_17bad_function_callEEEEE]' has different size C:/MiniGW/bin/../lib/gcc/mingw32/5.1.0/../../../libboost_program_options-mgw49-mt-1_60.a(value_semantic.o): duplicate section `.rdata$_ZTVN5boost15program_options5errorE[__ZTVN5boost15program_options5errorE]' has different size C:/MiniGW/bin/../lib/gcc/mingw32/5.1.0/../../../libboost_program_options-mgw49-mt-1_60.a(value_semantic.o): duplicate section `.rdata$_ZTVN5boost15program_options16validation_errorE[__ZTVN5boost15program_options16validation_errorE]' has different size C:/MiniGW/bin/../lib/gcc/mingw32/5.1.0/../../../libboost_program_options-mgw49-mt-1_60.a(value_semantic.o): duplicate section `.rdata$_ZTVN5boost15program_options20invalid_option_valueE[__ZTVN5boost15program_options20invalid_option_valueE]' has different size C:/MiniGW/bin/../lib/gcc/mingw32/5.1.0/../../../libboost_program_options-mgw49-mt-1_60.a(value_semantic.o): duplicate section `.rdata$_ZTVN5boost17bad_function_callE[__ZTVN5boost17bad_function_callE]' has different size C:/MiniGW/bin/../lib/gcc/mingw32/5.1.0/../../../libboost_program_options-mgw49-mt-1_60.a(value_semantic.o): duplicate section `.rdata$_ZTVN5boost16exception_detail19error_info_injectorINS_15program_options16validation_errorEEE[__ZTVN5boost16exception_detail19error_info_injectorINS_15program_options16validation_errorEEE]' has different size C:/MiniGW/bin/../lib/gcc/mingw32/5.1.0/../../../libboost_program_options-mgw49-mt-1_60.a(value_semantic.o): duplicate section `.rdata$_ZTVN5boost16exception_detail10clone_implINS0_19error_info_injectorINS_15program_options16validation_errorEEEEE[__ZTVN5boost16exception_detail10clone_implINS0_19error_info_injectorINS_15program_options16validation_errorEEEEE]' has different size C:/MiniGW/bin/../lib/gcc/mingw32/5.1.0/../../../libboost_program_options-mgw49-mt-1_60.a(options_description.o): duplicate section `.rdata$_ZTVN5boost15program_options5errorE[__ZTVN5boost15program_options5errorE]' has different size C:/MiniGW/bin/../lib/gcc/mingw32/5.1.0/../../../libboost_program_options-mgw49-mt-1_60.a(variables_map.o): duplicate section `.rdata$_ZTVN5boost15program_options5errorE[__ZTVN5boost15program_options5errorE]' has different size C:/MiniGW/bin/../lib/gcc/mingw32/5.1.0/../../../libboost_program_options-mgw49-mt-1_60.a(variables_map.o): duplicate section `.rdata$_ZTVN5boost15program_options22abstract_variables_mapE[__ZTVN5boost15program_options22abstract_variables_mapE]' has different size C:/MiniGW/bin/../lib/gcc/mingw32/5.1.0/../../../libboost_program_options-mgw49-mt-1_60.a(cmdline.o): duplicate section `.rdata$_ZTVN5boost15program_options5errorE[__ZTVN5boost15program_options5errorE]' has different size C:/MiniGW/bin/../lib/gcc/mingw32/5.1.0/../../../libboost_program_options-mgw49-mt-1_60.a(cmdline.o): duplicate section `.rdata$_ZTVN5boost17bad_function_callE[__ZTVN5boost17bad_function_callE]' has different size C:/MiniGW/bin/../lib/gcc/mingw32/5.1.0/../../../libboost_program_options-mgw49-mt-1_60.a(cmdline.o): duplicate section `.rdata$_ZTVN5boost16exception_detail19error_info_injectorINS_17bad_function_callEEE[__ZTVN5boost16exception_detail19error_info_injectorINS_17bad_function_callEEE]' has different size C:/MiniGW/bin/../lib/gcc/mingw32/5.1.0/../../../libboost_program_options-mgw49-mt-1_60.a(cmdline.o): duplicate section `.rdata$_ZTVN5boost16exception_detail10clone_implINS0_19error_info_injectorINS_17bad_function_callEEEEE[__ZTVN5boost16exception_detail10clone_implINS0_19error_info_injectorINS_17bad_function_callEEEEE]' has different size C:\Users\KANDMA~1\AppData\Local\Temp\ccdSjDgD.o:main.cpp:(.text+0xda): undefined reference to `boost::program_options::options_description::options_description(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, unsigned int, unsigned int)' C:\Users\KANDMA~1\AppData\Local\Temp\ccdSjDgD.o:main.cpp:(.text$_ZN5boost15program_options16validation_errorC1ENS1_6kind_tERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESA_i[__ZN5boost15program_options16validation_errorC1ENS1_6kind_tERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESA_i]+0x52): undefined reference to `boost::program_options::validation_error::get_template[abi:cxx11](boost::program_options::validation_error::kind_t)' C:/MiniGW/bin/../lib/gcc/mingw32/5.1.0/../../../../mingw32/bin/ld.exe: C:\Users\KANDMA~1\AppData\Local\Temp\ccdSjDgD.o: bad reloc address 0x52 in section `.text$_ZN5boost15program_options16validation_errorC1ENS1_6kind_tERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESA_i[__ZN5boost15program_options16validation_errorC1ENS1_6kind_tERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESA_i]' C:/MiniGW/bin/../lib/gcc/mingw32/5.1.0/../../../../mingw32/bin/ld.exe: final link failed: Invalid operation collect2.exe: error: ld returned 1 exit status Więc wydaje mi się że twoja paczka nie działa. |
|
j23 |
» 2016-04-12 19:44:57 A u mnie działa (kompilowałem w IDE). Być może to kwestia wersji MinGW, choć informacje o duplikatach u mnie też są, ale to raczej info niż warning czy błąd - kompilacja przechodzi. Prawdopodobnie to wynik różnych ustawień kompilatora/konsolidatora dla boosta i projektu.
|
|
1 « 2 » |