libconfig Неопределенные символы для архитектуры x86_64

Я пытаюсь запустить свою первую основную программу с libconfig на С ++. Я собрал с g++ testing.cpp -o testing,

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

using namespace std;
using namespace libconfig;

int main(){

Config cfg;

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

cout << "This compiled" << endl;

return 0;
}

Когда я запускаю rhel6, я получаю следующую ошибку (только первая строка):

testing.cpp:(.text+0x13): undefined reference to ``libconfig::Config::Config()'

Когда я работаю на Mac Darwin Kernel 15.5.0, я получаю эту ошибку:

Undefined symbols for architecture x86_64:
"libconfig::Config::readFile(char const*)", referenced from:
_main in testing-59bdf7.o
"libconfig::Config::Config()", referenced from:
_main in testing-59bdf7.o
"libconfig::Config::~Config()", referenced from:
_main in testing-59bdf7.o
"typeinfo for libconfig::ParseException", referenced from:
GCC_except_table0 in testing-59bdf7.o
"typeinfo for libconfig::FileIOException", referenced from:
GCC_except_table0 in testing-59bdf7.o
ld: symbol(s) not found for architecture x86_64
clang: error: linker command failed with exit code 1 (use -v to see invocation)

Это всего лишь пример из загруженного файла libconfig-1.5.tar.gz. Я прошел процесс makefile на Mac, получил эту ошибку, затем brew установил libconfig-1.6 и все еще получил ту же ошибку. Я в недоумении здесь. Любая помощь приветствуется.

0

Решение

Вам нужно связать библиотеку с вашим исполняемым файлом.

Как указано в документация добавлять -lconfig++ на ваш флаг компилятора, и это должно работать.

В основном это говорит компилятору, где искать исходные коды библиотеки (классы, функции и т. Д.), Чтобы они могли быть должным образом импортированы в вашу программу при необходимости.

0

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

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

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