Ошибка компоновщика с iniparser

Я пытаюсь скомпилировать проект из исходного кода и получаю несколько ошибок компоновщика неопределенных ссылок.

g++  src/Misc/Utils.o src/Misc/Timer.o  ... -o bin/nsnake  -lncurses -liniparser

src/Config/INI.o: In function `INI::load(std::string)':                    
INI.cpp:(.text+0xbb): undefined reference to `iniparser_load(char const*)'
...
INI.cpp:(.text+0x726): undefined reference to `iniparser_dump_ini(_dictionary_*, _IO_FILE*)'

collect2: error: ld returned 1 exit status
make: *** [nsnake] Error 1

Я уже проверил /lib и /usr/lib, и оба содержат символическую ссылку libiniparser.so.0 и libiniparser.so -> libiniparser.so.0. Есть ли что-то еще, что мне не хватает?


person dook    schedule 02.04.2014    source источник
comment
Функции в библиотеке, вероятно, связаны с C, и их объявления отсутствуют extern "C"   -  person Captain Obvlious    schedule 02.04.2014
comment
Это фактически ответило на мой вопрос. :) Я проверил предыдущую фиксацию и по какой-то причине автор удалил локальную версию iniparser. После отката я смог скомпилировать просто отлично.   -  person dook    schedule 02.04.2014


Ответы (1)


Мне пришлось добавить extern "C" { #include <iniparser.h> }, чтобы компилятор правильно скомпоновал.

person dook    schedule 03.04.2014