he instalado impulso en ubuntu 10.04 porerror de enlace en el código program_options con la biblioteca de impulso en ubuntu
sudo apt-get install libboost-dev
Creo que después de que yo no necesito que establezca ninguna opciones -I y -L, así que mi compilar código de
g++ test.cpp
Aquí está mi 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;
}
}
pienso que las cosas va bien, pero en realidad hay algunos errores :
/tmp/ccNQEbJM.o: En función 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
impulso :: :: program_options detalle :: :: common_config_file_iterator common_config_file_iterator (std :: set, std :: asignador>, std :: menos, std :: asignador> >, std :: asignador, std :: asignador>>> const &, bool)' a.cpp :(. text._ZN5boost15program_options6detail26basic_config_file_iteratorIcEC1ERSiRKSt3setISsSt4lessISsESaISsEEb [boost :: :: program_options detalle :: :: basic_config_file_iterator basic_config_file_iterator (std :: basic_istream> &, std :: set, std :: allocator>, std :: less, std :: allocator>>, std :: allocator, std :: allocator>>> const &, bool)] + 0x5f): referencia no definida a boost::program_options::detail::common_config_file_iterator::get()' /tmp/ccNQEbJM.o: In function
boost :: eof_iterator> :: increment() ': a.cpp :(. Text._ZN5boost12eof _iteratorINS_15program_options6detail27common_config_file_iteratorENS1_12basic_optionIcEEE9incrementEv [eof_iterator impulso ::> :: incremento()] + 0x10): referencia indefinida a boost::program_options::detail::common_config_file_iterator::get()' /tmp/ccNQEbJM.o: In function
impulso :: :: program_options detalle :: basic_config_file_iterator :: getline (std :: basic string, std :: asignador> &) ': a.cpp :(. text._ZN5boost15program_options6detail26basic_config_file_iteratorIcE7getlineERSs [boost :: program_options :: detail :: basic_config_file_iterator :: getline (std :: basic_string, std :: allocator> &)] + 0x5b): referencia no definida a `boost :: program_options: : to_internal (std :: basic_string, std :: asignador> const &)' collect2: ld devolvió el código de salida 1
no puedo averiguar dónde y por qué salió mal.
Nunca vinculados a las bibliotecas de impulso. Necesita especificar las opciones apropiadas '-l'. –
por cómo? Instalo boost por sudo apt-get install libboost-dev. No entiendo dónde están las bibliotecas. Especifico por "g ++ test.cpp -lboost-program_options" pero no puedo cargar lboost-program_options. – light13
Todo es guión bajo, tiene un '-' después del impulso que debería ser '_' – fefe