Erreur de lien dans Boost program_options code sur Ubuntu

J'ai installé boost sur ubuntu 10.04 par

sudo apt-get install libboost-dev

Je pense qu'après que je n'ai pas besoin de mettre toute -I et-L drapeaux, donc je compile mon code par

g++ test.cpp

Voici mon test.cpp

#include <iostream>
#include <string>
#include <set>
#include <sstream>

#include <boost/config.hpp>
#include <boost/program_options/detail/config_file.hpp>
#include <boost/program_options/parsers.hpp>

namespace pod = boost::program_options::detail;

int main() 
{  
    //contents
    std::stringstream s(
            "a = 1\n"
            "b = 2\n"
            "c = test option\n");
    //parameters
    std::set<std::string> options;
    options.insert("a");
    options.insert("b");
    options.insert("c");

    //parser
    for (pod::config_file_iterator i(s, options), e ; i != e; ++i)
    {
        std::cout << i->value[0] << std::endl;
    }
}

Je pense que les choses vont va bien, mais en fait il y a quelques erreurs:

/tmp/ccNQEbJM.o: In function `boost::program_options::detail::basic_config_file_iterator<char>::basic_config_file_iterator(std::basic_istream<char, std::char_traits<char> >&, std::set<std::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::less<std::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::basic_string<char, std::char_traits<char>, std::allocator<char> > > > const&, bool)':
a.cpp:(.text._ZN5boost15program_options6detail26basic_config_file_iteratorIcEC1ERSiRKSt3setISsSt4lessISsESaISsEEb[boost::program_options::detail::basic_config_file_iterator<char>::basic_config_file_iterator(std::basic_istream<char, std::char_traits<char> >&, std::set<std::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::less<std::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::basic_string<char, std::char_traits<char>, std::allocator<char> > > > const&, bool)]+0x24): undefined reference to `boost::program_options::detail::common_config_file_iterator::common_config_file_iterator(std::set<std::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::less<std::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::basic_string<char, std::char_traits<char>, std::allocator<char> > > > const&, bool)'
a.cpp:(.text._ZN5boost15program_options6detail26basic_config_file_iteratorIcEC1ERSiRKSt3setISsSt4lessISsESaISsEEb[boost::program_options::detail::basic_config_file_iterator<char>::basic_config_file_iterator(std::basic_istream<char, std::char_traits<char> >&, std::set<std::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::less<std::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::basic_string<char, std::char_traits<char>, std::allocator<char> > > > const&, bool)]+0x5f): undefined reference to `boost::program_options::detail::common_config_file_iterator::get()'
/tmp/ccNQEbJM.o: In function `boost::eof_iterator<boost::program_options::detail::common_config_file_iterator, boost::program_options::basic_option<char> >::increment()':
a.cpp:(.text._ZN5boost12eof_iteratorINS_15program_options6detail27common_config_file_iteratorENS1_12basic_optionIcEEE9incrementEv[boost::eof_iterator<boost::program_options::detail::common_config_file_iterator, boost::program_options::basic_option<char> >::increment()]+0x10): undefined reference to `boost::program_options::detail::common_config_file_iterator::get()'
/tmp/ccNQEbJM.o: In function `boost::program_options::detail::basic_config_file_iterator<char>::getline(std::basic_string<char, std::char_traits<char>, std::allocator<char> >&)':
a.cpp:(.text._ZN5boost15program_options6detail26basic_config_file_iteratorIcE7getlineERSs[boost::program_options::detail::basic_config_file_iterator<char>::getline(std::basic_string<char, std::char_traits<char>, std::allocator<char> >&)]+0x5b): undefined reference to `boost::program_options::to_internal(std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)'
collect2: ld returned 1 exit status

Je ne peux pas comprendre où et pourquoi je suis allé mal.

Vous n'avez jamais lié à l'bibliothèques boost. Vous avez besoin de spécifier des -l options.
par comment? J'ai installer boost par sudo apt-get install libboost-dev. Je ne suis pas là où sont les bibliothèques. Je précise par "g++ test.cpp -lboost-program_options" mais ne parviennent pas à charger lboost-program_options.
C'est tous trait de soulignement, vous disposez d'un '-' après boost qui devrait être '_'
J'ai essayer "g++ test.cpp -lboost_program_options", ne parviennent pas à nouveau. Message d'erreur:/usr/bin/ld: ne peut trouver -lboost_program_options collect2: ld a retourné 1 code de sortie ai-je raté quelque chose à faire? Ou le lien de la bibliothèque incorrecte nom?
Où puis-je trouver les bibliothèques? /usr/lib? Et Où puis-je obtenir le nom de la bibliothèque comme program_options?

OriginalL'auteur light13 | 2011-12-28