Скомпилировать программу libconfig ++

Я скачал libconfig-1.4.9 в Ubuntu 16.04.1LTS

http://igor-zivkovic.from.hr/BLFS/general/libconfig.html

и установлен. Примеры, которые были включены в lib, прошли успешно.
Я скопировал example1 в другой каталог. компилировать

g++ example1.cpp -lconfig++ -Wall -o example1

К успеху.
Бежать

./example1: symbol lookup error: ./example1: undefined symbol: _ZNK9libconfig7SettingcvSsEv

Я скопировал этот пример на другой компьютер, и пример работал нормально (libconfig был установлен ранее с помощью sudo apt-get install (ubuntu 14.04LTS)).

example1.cpp

#include <iostream>
#include <iomanip>
#include <cstdlib>
#include <libconfig.h++>

using namespace std;
using namespace libconfig;

// This example reads the configuration file 'example.cfg' and displays
// some of its contents.

int main(int argc, char **argv)
{
Config cfg;

// Read the file. If there is an error, report it and exit.
try
{
cfg.readFile("example.cfg");
}
catch(const FileIOException &fioex)
{
std::cerr << "I/O error while reading file." << std::endl;
return(EXIT_FAILURE);
}
catch(const ParseException &pex)
{
std::cerr << "Parse error at " << pex.getFile() << ":" << pex.getLine()
<< " - " << pex.getError() << std::endl;
return(EXIT_FAILURE);
}

// Get the store name.
try
{
string name = cfg.lookup("name");
cout << "Store name: " << name << endl << endl;
}
catch(const SettingNotFoundException &nfex)
{
cerr << "No 'name' setting in configuration file." << endl;
}

const Setting& root = cfg.getRoot();

// Output a list of all books in the inventory.
try
{
const Setting &books = root["inventory"]["books"];
int count = books.getLength();

cout << setw(30) << left << "TITLE" << "  "<< setw(30) << left << "AUTHOR" << "   "<< setw(6) << left << "PRICE" << "  "<< "QTY"<< endl;

for(int i = 0; i < count; ++i)
{
const Setting &book = books[i];

// Only output the record if all of the expected fields are present.
string title, author;
double price;
int qty;

if(!(book.lookupValue("title", title)
&& book.lookupValue("author", author)
&& book.lookupValue("price", price)
&& book.lookupValue("qty", qty)))
continue;

cout << setw(30) << left << title << "  "<< setw(30) << left << author << "  "<< '$' << setw(6) << right << price << "  "<< qty
<< endl;
}
cout << endl;
}
catch(const SettingNotFoundException &nfex)
{
// Ignore.
}

// Output a list of all books in the inventory.
try
{
const Setting &movies = root["inventory"]["movies"];
int count = movies.getLength();

cout << setw(30) << left << "TITLE" << "  "<< setw(10) << left << "MEDIA" << "   "<< setw(6) << left << "PRICE" << "  "<< "QTY"<< endl;

for(int i = 0; i < count; ++i)
{
const Setting &movie = movies[i];

// Only output the record if all of the expected fields are present.
string title, media;
double price;
int qty;

if(!(movie.lookupValue("title", title)
&& movie.lookupValue("media", media)
&& movie.lookupValue("price", price)
&& movie.lookupValue("qty", qty)))
continue;

cout << setw(30) << left << title << "  "<< setw(10) << left << media << "  "<< '$' << setw(6) << right << price << "  "<< qty
<< endl;
}
cout << endl;
}
catch(const SettingNotFoundException &nfex)
{
// Ignore.
}

return(EXIT_SUCCESS);
}

// eof

example.cfg

// An example configuration file that stores information about a store.

// Basic store information:
name = "Books, Movies & More";

// Store inventory:
inventory =
{
books = ( { title  = "Treasure Island";
author = "Robert Louis Stevenson";
price  = 29.99;
qty    = 5; },
{ title  = "Snow Crash";
author = "Neal Stephenson";
price  = 9.99;
qty    = 8; }
);

movies = ( { title = "Brazil";
media = "DVD";
price = 19.99;
qty = 11; },
{ title = "The City of Lost Children";
media = "DVD";
price = 18.99;
qty = 5; },
{ title = "Memento";
media = "Blu-Ray";
price = 24.99;
qty = 20;
},
{ title = "Howard the Duck"; }
);
};

// Store hours:
hours =
{
mon = { open =  9; close = 18; };
tue = { open =  9; close = 18; };
wed = { open =  9; close = 18; };
thu = { open =  9; close = 18; };
fri = { open =  9; close = 20; };
sat = { open =  9; close = 20; };
sun = { open = 11; close = 16; };
};

0

Решение

Задача ещё не решена.

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]