【问题标题】:Compiling libnoise on windows with mingw使用mingw在windows上编译libnoise
【发布时间】:2012-11-08 01:04:31
【问题描述】:

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

我已经为此苦苦挣扎了几天,最终决定认输并寻求帮助。简而言之,我想在 windows 上使用 mingw 编译 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:(.tex 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 位并且(想想)我在 mingW 4.7.0 上。

【问题讨论】:

  • 我不知道你是否解决过这个问题,但如果你还没有解决过,用户 Lukas 整理了一个 CMake 设置,使构建 libnoise 变得非常容易。你可以在他的回答中找到这个问题的链接:stackoverflow.com/questions/15272971/…

标签: c++ mingw


【解决方案1】:
  1. 不用担心No such file or directory。很正常,说明见底部src/Makefile
  2. 永远不要使用目标clean。我无法从中恢复过来。
  3. 删除所有方向以构建.so 文件。这些是 linux 文件,不能由 mingw 构建。打开所有Makefiles 并注释掉包含.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 的 makefile 目标。需要多准备几行来处理win32 目录中的文件并从中生成库。

【讨论】:

  • 您,先生,是个传奇。非常非常感谢你!我还没有测试它,但它似乎已经奏效了! :)
  • win32 目录下的文件主要是装饰性的。他们向 DLL 添加了一些附加信息。由于对我来说 Makefile 似乎很糟糕,我编写了一个 CMake 脚本并调整了目录结构,但代码本身仍然是一样的。现在可以轻松构建静态或共享库:GitHub Project
猜你喜欢
  • 2013-01-16
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-10-22
  • 2018-06-29
  • 1970-01-01
  • 2020-11-22
相关资源
最近更新 更多