program_options examples, with many link error...
devc++4.9.9.2, gcc 3.4.2,
can I get your opinions on this problem? thank you~
make.exe -f "D:\temp\Makefi le.win" all
g++.exe -c main.cpp
-o
ain.o -I"F:/Source/Boost/boost_1_32_0" -I"C:/Dev-Cpp/lib/gcc/mingw32/3.4.2/include"
-I"C:/Dev-Cpp/include/c++/3.4.2/backward" -I"C:/Dev-Cpp/include/c++/3.4.2/mingw32"
-I"C:/Dev-Cpp/include/c++/3.4.2" -I"C:/Dev-Cpp/include"
g++.exe main.o -o "PO.exe" -L"C:/Dev-Cpp/lib"
main.o(.text+0x 1bb):main.cpp: undefined reference to
`boost::program _options::optio ns_description: :options_descri ption(std::stri ng
const&)'
main.o(.text+0x 28c):main.cpp: undefined reference to
`boost::program _options::optio ns_description: :add_options()'
main.o(.text+0x 2b0):main.cpp: undefined reference to
`boost::program _options::optio ns_description_ easy_init::oper ator()(char
const*, char const*)'
main.o(.text+0x 2d2):main.cpp: undefined reference to
`boost::program _options::optio ns_description_ easy_init::oper ator()(char
const*, boost::program_ options::value_ semantic const*, char const*)'
main.o(.text+0x 2e0):main.cpp: undefined reference to
`boost::program _options::varia bles_map::varia bles_map()'
main.o(.text+0x 370):main.cpp: undefined reference to
`boost::program _options::store (boost::program _options::basic _parsed_options <char>
const&, boost::program_ options::variab les_map&, bool)'
main.o(.text+0x 449):main.cpp: undefined reference to
`boost::program _options::notif y(boost::progra m_options::vari ables_map&)'
main.o(.text+0x 589):main.cpp: undefined reference to
`boost::program _options::opera tor<<(std::ostr eam&,
boost::program_ options::option s_description const&)'
main.o(.text$_Z NK5boost15progr am_options13var iables_mapixERK Ss[boost::program_ options::variab les_map::operat or[](std::basic_str ing<char,
std::char_trait s<char>, std::allocator< char> > const&)
const]+0x14):main.cpp : undefined reference to
`boost::program _options::abstr act_variables_m ap::operator[](std::string
const&) const'
main.o(.text$_Z N5boost15progra m_options13vari ables_mapD1Ev[boost::program_ options::variab les_map::~varia bles_map()]+0x3a):main.cpp :
undefined reference to `vtable for boost::program_ options::variab les_map'
main.o(.text$_Z N5boost15progra m_options25basi c_command_line_ parserIcEC1EiPP c[boost::program_ options::basic_ command_line_pa rser<char>::bas ic_command_line _parser(int,
char**)]+0x9b):main.cpp : undefined reference to
`boost::program _options::commo n_command_line_ parser::common_ command_line_pa rser(std::vecto r<std::string,
std::allocator< std::string> > const&)'
main.o(.text$_Z NK5boost15progr am_options25bas ic_command_line _parserIcE3runE v[boost::program_ options::basic_ command_line_pa rser<char>::run ()
const]+0x15):main.cpp : undefined reference to
`boost::program _options::commo n_command_line_ parser::run() const'
main.o(.text$_Z N5boost15progra m_options29valu e_semantic_code cvt_helperIcED2 Ev[boost::program_ options::value_ semantic_codecv t_helper<char>: :~value_semanti c_codecvt_helpe r()]+0xb):main.cpp:
undefined reference to `vtable for
boost::program_ options::value_ semantic_codecv t_helper<char>'
main.o(.text$_Z N5boost15progra m_options29valu e_semantic_code cvt_helperIcEC2 Ev[boost::program_ options::value_ semantic_codecv t_helper<char>: :value_semantic _codecvt_helper ()]+0x16):main.cpp :
undefined reference to `vtable for
boost::program_ options::value_ semantic_codecv t_helper<char>'
main.o(.text$_Z N5boost15progra m_options11to_i nternalISsEESt6 vectorISsSaISsE ERKS2_IT_SaIS5_ EE[std::vector<std ::basic_string< char,
std::char_trait s<char>, std::allocator< char> >,
std::allocator< std::basic_stri ng<char, std::char_trait s<char>,
std::allocator< char> > > >
boost::program_ options::to_int ernal<std::basi c_string<char,
std::char_trait s<char>, std::allocator< char> >
(std::vector<s td::basic_strin g<char, std::char_trait s<char>,
std::allocator< char> >, std::allocator< std::basic_stri ng<char,
std::char_trait s<char>, std::allocator< char> > > > const&)]+0xd4):main.cpp :
undefined reference to `boost::program _options::to_in ternal(std::str ing
const&)'
main.o(.rdata$_ ZTVN5boost15pro gram_options11t yped_valueIicEE[vtable for
boost::program_ options::typed_ value<int, char>]+0x1c):main.cpp : undefined
reference to
`boost::program _options::value _semantic_codec vt_helper<char> ::parse(boost:: any&,
std::vector<std ::string, std::allocator< std::string> > const&, bool) const'
main.o(.text$_Z NK5boost15progr am_options11typ ed_valueIicE4na meEv[boost::program_ options::typed_ value<int,
char>::name() const]+0x80):main.cpp : undefined reference to
`boost::program _options::arg'
main.o(.text$_Z NK5boost15progr am_options11typ ed_valueIicE4na meEv[boost::program_ options::typed_ value<int,
char>::name() const]+0x162):main.cp p: undefined reference to
`boost::program _options::arg'
main.o(.text$_Z N5boost15progra m_options8valid ateIicEEvRNS_3a nyERKSt6vectorI SbIT0_St11char_ traitsIS5_ESaIS 5_EESaIS9_EEPT_ l[void
boost::program_ options::valida te<int, char>(boost::an y&,
std::vector<std ::basic_string< char, std::char_trait s<char>,
std::allocator< char> >, std::allocator< std::basic_stri ng<char,
std::char_trait s<char>, std::allocator< char> > > > const&, int*,
long)]+0x4c):main.cpp : undefined reference to
`boost::program _options::valid ators::check_fi rst_occurrence( boost::any
const&)'
main.o(.text$_Z N5boost15progra m_options8valid ateIicEEvRNS_3a nyERKSt6vectorI SbIT0_St11char_ traitsIS5_ESaIS 5_EESaIS9_EEPT_ l[void
boost::program_ options::valida te<int, char>(boost::an y&,
std::vector<std ::basic_string< char, std::char_trait s<char>,
std::allocator< char> >, std::allocator< std::basic_stri ng<char,
std::char_trait s<char>, std::allocator< char> > > > const&, int*,
long)]+0x1e1):main.cp p: undefined reference to
`boost::program _options::inval id_option_value ::invalid_optio n_value(std::st ring
const&)'
main.o(.text$_Z N5boost15progra m_options16vali dation_errorD2E v[boost::program_ options::valida tion_error::~va lidation_error( )]+0x3a):main.cpp :
undefined reference to `vtable for boost::program_ options::valida tion_error'
main.o(.text$_Z N5boost15progra m_options16vali dation_errorD1E v[boost::program_ options::valida tion_error::~va lidation_error( )]+0x3a):main.cpp :
undefined reference to `vtable for boost::program_ options::valida tion_error'
main.o(.text$_Z N5boost15progra m_options16vali dation_errorC1E RKSs[boost::program_ options::valida tion_error::val idation_error(s td::basic_strin g<char,
std::char_trait s<char>, std::allocator< char> > const&)]+0x53):main.cpp :
undefined reference to `vtable for boost::program_ options::valida tion_error'
main.o(.rdata$_ ZTVN5boost15pro gram_options20i nvalid_option_v alueE[vtable for
boost::program_ options::invali d_option_value]+0x10):main.cpp : undefined
reference to `boost::program _options::valid ation_error::wh at() const'
collect2: ld returned 1 exit status
make.exe: *** [PO.exe] Error 1
source file:
// Copyright Vladimir Prus 2002-2004.
// Distributed under the Boost Software License, Version 1.0.
// (See accompanying file LICENSE_1_0.txt
// or copy at http://www.boost.org/LICENSE_1_0.txt)
/* The simplest usage of the library.
*/
#include <boost/program_options .hpp>
namespace po = boost::program_ options;
#include <iostream>
#include <iterator>
using namespace std;
int main(int ac, char* av[])
{
try {
po::options_des cription desc("Allowed options");
desc.add_option s()
("help", "produce help message")
("compressio n", po::value<int>( ), "set compression level")
;
po::variables_m ap vm;
po::store(po::p arse_command_li ne(ac, av, desc), vm);
po::notify(vm);
if (vm.count("help ")) {
cout << desc << "\n";
return 1;
}
if (vm.count("comp ression")) {
cout << "Compressio n level was set to "
<< vm["compressio n"].as<int>() << ".\n";
} else {
cout << "Compressio n level was not set.\n";
}
}
catch(exception & e) {
cerr << "error: " << e.what() << "\n";
return 1;
}
catch(...) {
cerr << "Exception of unknown type!\n";
}
return 0;
}