c-使用mingw在Windows上编译libnoise

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

我已经为此苦苦挣扎了几天,我终于决定让步并寻求帮助.简而言之,我想使用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: No such file or directory

尽管我可以确认它们存在于指定的目录中.它还在抱怨别的东西

c:/mingw/bin/../lib/gcc/mingw32/4.7.0/../../../libmingw32.a(main.o):main.c:(.tex
t.startup+0xa7): undefined reference to _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] Error 2

我不知道如何解决这些问题.谷歌搜索除了打开博客post之外并没有带来太多其他好处.这也没有帮助,因为我不确定“重命名库名称以为其提供适当的DLL扩展名是什么意思.全部替换”做.”.

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

干杯

额外信息:我正在运行Windows 7、64位和(认为)我在mingW 4.7.0上.

解决方法:

>不用担心没有这样的文件或目录.正常,请参见src / Makefile的底部进行解释.
>永远不要使用目标清洁.我无法从中恢复.
>删除所有指示以构建.so文件.这些是linux文件,不能由mingw构建.打开所有的Makefile,并注释掉包含.so的行,但以下行除外:

libnoise:libnoise.so libnoise.a libnoise.la
全部:libnoise.a libnoise.la libnoise.so.0.3

在上述各行中,仅删除包含.so的单词.这将防止建立.so目标.

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

由于作者使用Visual Studio来构建DLL,因此构建DLL会有点困难.没有生成dll的makefile目标.需要准备几行代码来处理win32目录中的文件,并从中产生库.

上一篇:c – 为MinGW配置Eclipse


下一篇:c – GLUT程序链接错误