Go back to Richel Bilderbeek's homepage.

Go back to Richel Bilderbeek's C++ page.

 

 

 

 

 

(C++) Boost Boost.Program_options example 1: basics

 

Boost.Program_options example 1: basics is a Boost.Program_options example.

 

The example shows a (demonstration) program that responds to either '--help' or '--filename [my_filename]'.

 

 

 

 

 

 

Technical facts

 

Operating system(s) or programming environment(s)

IDE(s):

Project type:

C++ standard:

Compiler(s):

Libraries used:

 

 

 

 

 

Qt project file: CppProgram_optionsExample1.pro

 

QT       += core
QT       -= gui
CONFIG   += console
CONFIG   -= app_bundle
TEMPLATE = app

unix {
  LIBS += -lboost_regex
}

win32 {
  #Boost.Program_options
  INCLUDEPATH += \
  ../../Libraries/boost_1_53_0

  SOURCES += main.cpp \
    ../../Libraries/boost_1_53_0/libs/program_options/src/winmain.cpp \
    ../../Libraries/boost_1_53_0/libs/program_options/src/variables_map.cpp \
    ../../Libraries/boost_1_53_0/libs/program_options/src/value_semantic.cpp \
    ../../Libraries/boost_1_53_0/libs/program_options/src/utf8_codecvt_facet.cpp \
    ../../Libraries/boost_1_53_0/libs/program_options/src/split.cpp \
    ../../Libraries/boost_1_53_0/libs/program_options/src/positional_options.cpp \
    ../../Libraries/boost_1_53_0/libs/program_options/src/parsers.cpp \
    ../../Libraries/boost_1_53_0/libs/program_options/src/options_description.cpp \
    ../../Libraries/boost_1_53_0/libs/program_options/src/convert.cpp \
    ../../Libraries/boost_1_53_0/libs/program_options/src/config_file.cpp \
    ../../Libraries/boost_1_53_0/libs/program_options/src/cmdline.cpp

}

 

 

 

 

 

main.cpp

 

#include <iostream>
#include <boost/program_options.hpp>

int main(int argc, char* argv[])
{
  // Declare the supported options.
  boost::program_options::options_description d("Allowed options for [my_program]");
  d.add_options()
      ("help",
        "produce this help message")
      ("filename",
         boost::program_options::value<std::string>(),
         "load from file 'arg'");

  boost::program_options::variables_map m;
  boost::program_options::store(
    boost::program_options::parse_command_line(
      argc, argv, d), m);
  boost::program_options::notify(m);

  //If one of the options is set to 'help'...
  if (m.count("help"))
  {
    //Display the options_description
    std::cout << d << "\n";
  }

  if (m.count("filename"))
  {
    std::cout
      << "Filename is set to '"
      << m["filename"].as<std::string>()
      << "'\n";
  }
  else
  {
    std::cout
      << "No filename set\n";
  }
}

 

 

 

 

 

crosscompiletowindows.sh

 

#!/bin/sh
#From http://richelbilderbeek.nl/CppQtCrosscompileToWindowsExample15.htm

echo "Cross compiling to Windows"

echo "1/2: Creating Windows makefile"
i686-pc-mingw32-qmake CppProgram_optionsExample1.pro

echo "2/2: making makefile"

make

echo "Done"

 

 

 

 

 

Go back to Richel Bilderbeek's C++ page.

Go back to Richel Bilderbeek's homepage.

 

Valid XHTML 1.0 Strict

This page has been created by the tool CodeToHtml