2013-03-07 69 views
1

使用netbeans 7.2和最新版本的MinGW(使用安装程序)我无法使用libnoise库。我正确地包括头文件,自动完成证实了这一点,但是库不工作。有一个.lib文件和一个.dll。我尝试了在项目>属性>构建>链接器下添加它们的各种可能的组合,并将.dll放在基础项目目录中。尽管如此,每当我尝试运行代码时,仍然会遇到未定义的引用错误。有谁知道该怎么办?使用MinGW和libnoise库的Netbeans C++

回答

0

你要链接LIB文件(=将其添加到链接库),并把DLL

<project root>/dist/<...>/ 

(在您的exe的投入)。没有必要将dll添加到链接器。

您可以发布您收到的错误消息吗?

+0

每当我第一次添加库时,它被称为“噪音”,下面是该项目的设置和输出: [设置](http://i1136.photobucket.com/albums/n489/thepackett727/noiselibsettings_zpsdc7b56c9.png ) [输出](http://i1136.photobucket.com/albums/n489/thepackett727/noiseliboutput_zpsa33071b1.png) 由于实际的文件名是libnoise.lib,我将名称更改为“libnoise”,并得到了以下结果: [设置](http://i1136.photobucket.com/albums/n489/thepackett727/libnoiselibsettings_zpsab0de522.png) [输出](http://i1136.photobucket.com/albums/n489/thepackett727/libnoiseliboutput_zps255484f7.png ) – 2013-03-07 23:54:50

+0

你是如何添加.lib文件的?在链接器设置中,使用*添加库文件... *来添加它。 – 2013-03-08 14:20:30

+0

我以前用过“添加库”。在尝试这个时,我得到了同样的错误。 [设定](http://i1136.photobucket.com/albums/n489/thepackett727/libnoiselibaddlibraryfileoptionsettings_zps2214f9f3.png) [输出(http://i1136.photobucket.com/albums/n489/thepackett727/libnoiseaddlibraryfileoutput_zpsc58cc350.png) 我认为考虑到我正在使用MinGW,图书馆是在Visual Studio中编译,所以complilers之间可能存在不兼容问题。这将解释一个未定义的参考“vtable”。我不知道如何解决这个问题。 – 2013-03-08 23:36:28

2

我知道可以将导入库文件(* .lib)与MinGW链接,但我仍然建议重新编译libnoise。

对于当前的Makefile,这不是very easy,可能会中断。因此我写了一个CMake脚本,它不仅适用于Windows,而且适用于所有CMake支持的平台。除此之外,我已经清理了目录结构。代码本身没有被触及,当你建立一个库时,它本质上应该和现在一样。

libnoise on GitHub

你建立你的共享库后,你就会有一个libnoise.dll.alibnoise.dll文件。然后,您将libnoise.dll.a添加到链接设置,并将DLL本身放在二进制文件旁边或工作目录中。

+1

谢谢!我会试试这个! – 2013-04-09 00:58:19

+0

衷心感谢您启动此项目;没有一个可用的CMake或make文件,我会简单地放弃这个库并继续使用其他的东西,或者只是自己实现非常基础的东西。 – Rabbit 2013-06-17 20:52:44