C++: std::unique_prt + boost -- undefined reference in make_unique

44 views Asked by At

ladies and guys!

When I was writing my application I started writing a settings class:

Config.h:

#ifndef CONFIG_H
#define CONFIG_H

#include <iostream>
#include <fstream>
#include <string>
#include <boost/program_options/variables_map.hpp>
#include <boost/program_options/options_description.hpp>

namespace po = boost::program_options;

class Config
{
public:
    std::string CITY;
    std::string API_KEY;

    Config();

//    void initialization();

private:
    std::unique_ptr<po::variables_map> m_vm;
    std::unique_ptr<po::options_description> m_desc;
};

#endif // CONFIG_H

Config.cpp:
#include "Config.h"

Config::Config()
{
    m_vm = std::make_unique<po::variables_map>();
//    m_desc = std::make_unique<po::options_description>(po::options_description("Configuration"));
//    m_desc->add_options()
//            ("param1", po::value<int>()->default_value(0), "Parameter 1")
//            ("param2", po::value<std::string>()->default_value(""), "Parameter 2");
}

void Config::initialization() {
   // std::ifstream file("example.txt");
}

And if I try to compile my programm I have this message:

undefined reference to `boost::program_options::variables_map::variables_map()'

But if I write in cpp-file this row:

po::variables_map test();

Then I won't have compilation errors.

0

There are 0 answers