【发布时间】:2014-04-02 17:38:24
【问题描述】:
我正在尝试从源代码编译项目并收到几个未定义的引用链接器错误
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 符号链接。我还有什么遗漏的吗?
【问题讨论】:
-
库中的函数可能有 C 链接,并且缺少它们的声明
extern "C" -
这实际上回答了我的问题。 :) 我检查了以前的提交,由于某种原因,作者删除了本地版本的 iniparser。回滚后,我能够编译得很好。
标签: c++ c++11 linker-errors fedora ini