2012-11-08 72 views
4

这是我在这里的第一篇文章,所以请原谅我,如果我做错了什么。用mingw在windows上编译libnoise

我一直在为此奋斗了几天,终于决定让步并寻求帮助。简单地说,我想用mingw在windows上编译libnoise(1.0.0)。但是,似乎缺乏在线信息。

我已经从网站下载了源文件,并按照INSTALL文本文件中的指示说明我应该运行命令“CXXFLAGS =' - O3 -fomit-frame-pointer'make”(我从mingW外壳)。

该操作的输出可以在link找到(我已经链接,而不是发布输出,因为它的长度)。如果我省略了CXXFLAGS或fomit-frame-pointer标志,或者如果我使用mingw32-make或make all命令,输出不会有太大的变化。

这似乎是在抱怨缺少的文件,如

的Makefile:56:../src/latlon.d:没有这样的文件或目录

虽然我可以证实他们的存在在目录中说明。它也抱怨别的

C:/ MinGW的/ bin中/../ lib中/ GCC/mingw32的/ 4.7.0 /../../../ libmingw32.a(main.o),此:main.c :(.txt t.startup + 0xa7):undefined参考[email protected]' collect2.exe: error: ld returned 1 exit status make[1]: *** [libnoise.so.0.3] Error 1 make[1]: Leaving directory /c/users/gibbons/desktop/libnoisesrc-1.0.0/noise/src'make:* [src]错误2

我不知道如何解决这些问题。一个谷歌搜索并没有真正变成很多,然后一个博客post。这也没有真正的帮助,因为我不确定它是什么意思,“重命名库名给它一个合适的DLL扩展名,一个替换 - 所有的都会。”。

任何帮助或建议,将不胜感激,我真的很卡! : -/

干杯

额外的信息:我运行Windows 7,64位和(认为)我在MinGW的4.7.0。

+1

我不知道你是否曾经解决过这个问题,但是如果你还没有解决这个问题,用户Lukas会将一个CMake设置放在一起,这使得构建libnoise变得非常简单。你可以在他的答案中找到它链接到这个问题:http://stackoverflow.com/questions/15272971/netbeans-c-using-mingw-and-the-libnoise-library – Rabbit

回答

3
  1. 不用担心No such file or directory。这很正常,请参阅src/Makefile的底部以获得解释。
  2. 永远不要使用目标clean。我无法从中恢复。
  3. 删除所有路线以建立.so档案。这些是linux文件,不能由mingw构建。打开所有的Makefile S和注释含有.so线,除了行:

    libnoise: libnoise.so libnoise.a libnoise.la
    all: libnoise.a libnoise.la libnoise.so.0.3

    在上述线仅除去含有.so词语的这将阻止构建.so目标。

找到静态库src/.libs/libnoise.a

构建DLL会比较困难,因为作者使用Visual Studio进行构建。没有生成文件目标来构建该dll。您需要准备几行文件来处理win32目录中的文件,并生成该文件夹。

+0

你,先生,是一个传奇。非常非常感谢你!我还没有测试过,但它似乎有效! :) – Gib

+0

我证实它的工作。再次感谢:) – Gib

+0

'win32'目录中的文件主要是装饰性的。他们添加一些额外的信息给DLL。由于对我来说Makefile看起来相当破碎,我写了一个CMake脚本并调整了目录结构,但代码本身仍然相同。现在很容易建立一个静态或共享库:[GitHub Project](https://github.com/eXpl0it3r/libnoise) – Lukas

相关问题