C++ libconfig未定义对libconfig::Config::Config()的引用

C++ libconfig未定义对libconfig::Config::Config()的引用,c++,compiler-errors,linker,undefined-reference,libconfig,C++,Compiler Errors,Linker,Undefined Reference,Libconfig,我正在尝试构建一个游戏引擎,我已经转向libconfig来处理我所有的配置需求。我正在构建一个资产管理器,它将使用libconfig解析的配置文件来加载图像、声音等 我试图编译这个项目时遇到了一个问题。这是导致错误的代码区域: AssetManager::AssetManager(GameEngine *engine){ _engine = engine; _config = new Config(); // <-- ERROR ( this is line 5 ) stri

我正在尝试构建一个游戏引擎,我已经转向libconfig来处理我所有的配置需求。我正在构建一个资产管理器,它将使用libconfig解析的配置文件来加载图像、声音等

我试图编译这个项目时遇到了一个问题。这是导致错误的代码区域:

AssetManager::AssetManager(GameEngine *engine){
  _engine = engine;
  _config = new Config(); // <-- ERROR ( this is line 5 )

  string path = string(ASSET_DIRECTORY);
  path += "assets.cfg";

  try {
    _config->readFile( path.c_str() ); //<-- ERROR ( this is line 11 )
  } catch ( const FileIOException &fioex ){
    cout << "File exception" << endl;
  } catch ( const ParseException &pex ){
    cout << "Parse exception" << endl;
  }
}
AssetManager.o: In function 'AssetManager':
/home/sean/Code/C++/Ridiculous/src/engine/AssetManager.cpp:5: undefined reference to 'libconfig::Config::Config()'
/home/sean/Code/C++/Ridiculous/src/engine/AssetManager.cpp:11: undefined reference to 'libconfig::Config::readFile(char const*)'
AssetManager.o:(.gcc_except_table+0x40): undefined reference to 'typeinfo for libconfig::ParseException'
AssetManager.o:(.gcc_except_table+0x44): undefined reference to 'typeinfo for libconfig::FileIOException'
当我第一次尝试使用libconfig时,我使用我的系统的包管理器(apt-get,我在Ubuntu 11.10上)下载了这个包。这不起作用,所以我尝试从项目主页下载并安装库。同样的错误

作为参考,这里是make试图用来编译它的一行代码(这是最后的编译阶段——将所有内容链接在一起以生成主可执行文件):

g++-g-O2-Wall-Isrc/engine/include-Isrc/engine/include/render-Isrc/engine/include/logic-I/usr/include-DVERSION=\'0.1\'-DPROG=“\'Program Name\'”-I/usr/include/SDL-D\u GNU SORCE=1-D\u可重入-L/usr/lib-lSDL-lSDL\u image-lconfig++-o programmm main.o engine.o AssetManager.o RenderEngine.o Log.o

在过去的几个小时里,我一直在努力想办法解决这个问题。似乎找不到任何东西,通过谷歌,所以,或随机尝试调试我自己。不走运

<>我感觉我缺少了一些超基本的东西,可能是我对C++的限制(但不断增长)的知识可能是问题所在。或者也许我只是胖手指。我真的不确定

非常感谢您的帮助!(如果我弄明白了,我会发布答案)

旁注:我试图用“libconfig”来标记这个,但显然这个标记不存在,而且我还没有足够的声誉来创建它

编辑

原来这是我的自动生成/配置设置的问题。在我的Makefile.am中,我使用了
LDFLAGS+=
而不是
LIBS=
。显然,这(以及一个良好的睡眠)会带来巨大的不同

*掌纹*

g++-g-L/usr/lib-lSDL-lSDL_image-lconfig++-o programmmain.o


上面的命令行完全是假的。库和对象在链接行上的顺序,您使用的顺序与应该使用的顺序相反。

您能够编译并运行libconfig附带的示例程序吗@你给我指明了正确的方向。结果证明我的makefile不正确(好吧,makefile.am)。这就是我一直在努力的方向,在尝试新库的同时学习自动生成/配置工具链。