Panel użytkownika
Nazwa użytkownika:
Hasło:
Nie masz jeszcze konta?

Bilblioteka boost. budowanie plików lib

Ostatnio zmodyfikowano 2016-04-12 19:44
Autor Wiadomość
polewa
Temat założony przez niniejszego użytkownika
» 2016-04-12 15:08:27
C/C++
#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." ) //lets you use --NumberList or -N
    ;
   
    po::variables_map vm;
    po::store( po::parse_command_line( argc, argv, desc ), vm );
    po::notify( vm ); //assign the variables (if they were specified)
   
    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.
P-147206
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.

P-147215
1 « 2 »
Poprzednia strona Strona 2 z 2