使用mingw在windows上编译libnoise

时间:2012-11-08 01:04:31

标签: c++ mingw

这是我在这里的第一篇文章,如果我做错了,请原谅我。

我几天都在努力奋斗,最后我决定让步并寻求帮助。简而言之,我想使用mingw在windows上编译libnoise(1.0.0)。但是,似乎缺乏在线提供的信息。

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

此操作的输出可以在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中:(特。   t.startup + 0xa7):未定义引用_WinMain@16' 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位并且(想)我正在使用4.7.0。

1 个答案:

答案 0 :(得分:3)

  1. 不要担心No such file or directory。这是正常的,请参阅src/Makefile的底部以获得解释。
  2. 不要使用目标clean。我无法从中恢复过来。
  3. 删除构建.so个文件的所有路线。这些是linux文件,不能由mingw构建。打开所有Makefile并注释掉包含.so的行,但行除外:

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

    在上面的行中,只删除包含.so的字词。这会阻止构建.so目标。

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

    构建DLL 会更难,因为作者使用Visual Studio构建它。没有makefile目标来构建dll。人们需要准备更多行来处理win32目录中的文件并从中生成库。