有人用MinGW / MSYS成功编译了freetype吗?

我试图用MinGW / MSYS编译freetype是不成功的 这是我做的: 从
cmd.exe
我切换到
MSYS
C:tempfreetype-2.3.5-1srcfreetype2.3.5freetype-2.3.5>bash
然后调用
configure
脚本
bash-3.1$ ./configure

FreeType build system -- automatic system detection

The following settings are used:

  platform                    unix
  compiler                    cc
  configuration directory     ./builds/unix
  configuration rules         ./builds/unix/unix.mk

If this does not correspond to your system or settings please remove the file
`config.mk' from this directory then read the INSTALL file for help.

Otherwise, simply type `make' again to build the library,
or `make refdoc' to build the API reference (the latter needs python).

cd builds/unix; ./configure
checking build system type... i686-pc-mingw32

[------ Deleted some 121 lines because they seem irrelevant for the problem ------]

config.status: creating ftconfig.h
make: Nothing to be done for `unix'.
配置freetype后,我想使用
make
编译源代码:
bash-3.1$ make
/bin/sh: cygpath: command not found
config.mk:36: /builds/freetype.mk: No such file or directory
config.mk:57: /builds/unix/install.mk: No such file or directory
builds/toplevel.mk:158: /builds/modules.mk: No such file or directory
make: *** No rule to make target `/builds/modules.mk'.  Stop.
问题似乎是cygpath,这很奇怪,因为我还没有安装cygwin。 由于编译指令要求gnu make,我验证了这一点:
bash-3.1$ make -v
GNU Make 3.81
Copyright (C) 2006  Free Software Foundation, Inc.
This is free software; see the source for copying conditions.
There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A
PARTICULAR PURPOSE.

This program built for i686-pc-msys
我做错了什么? 编辑:目录中还有
Makefile.mingw
。尝试用
make -f Makefile.mingw
开始编译过程也没有完成,返回消息
¨make: *** No rule to make target 'MFSED', needed by 'all'.  Stop.
。 更新好了,我已经对此事进行了一些侦探调查,似乎问题是因为我没有安装CygWin。我有这个假设,因为
cygpath
是一个CygWin实用程序(见这里),它将unix-paths转换为windows-paths,反之亦然。 现在,
¨find . -type f -exec grep -l cygpath {} ;
找到了几个使用
cygpath
的位置: ./builds/unix/aclocal.m4 ./builds/unix/configure ./builds/unix/unix-def.in ./builds/unix/unix-def.mk ./patches/freetype-2.3.4.diff ./patches/freetype-2.3.5/builds/unix/unix-def.mk ./patches/freetype-2.3.5.diff 而且我想我必须在一个或多个这些位置改变一些东西来修复构建。对?我仍然希望那些对整个./configure-build过程有更多了解的人可以给我一个关于这个问题的提示。 更新II:从rubenvb的答案,我想我可以尝试
./configure --build=i686-pc-mingw32
然后删除行阅读
TOP_DIR := $(shell cd $(TOP_DIR); cygpath -m `pwd`)
builds/unix/unix-def.mk
然后改变行读数
RCTOOL_COMPILE = RCTOOL
RCTOOL_COMPILE = $(RCTOOL)
./builds/freetype.mk
并且还将http://gnuwin32.sourceforge.net/rctool.sh.txt复制到
c:mingwbin
(因为因为缺少
rctool.sh
而有奇怪的错误)然后用
make
开始编译过程。 现在,源文件的编译似乎(至少部分)最终完成,尽管我已经收到很多警告
./src/base/ftcalc.c:75:3: warning: 'FT_RoundFix' redeclared without dllimport attribute: previous dllimport ignored
但链接器无法链接* .o文件,因为有许多未定义的引用,如
C:tempfreetype-2.3.5-1srcfreetype2.3.5freetype-2.3.5/src/base/ftinit.c:89: undefined reference to `_imp__FT_Add_Module'
我猜编译警告与链接器错误无关。 所以现在怎么办?     
已邀请:
通常,在Windows上编译unix / linux软件有两种方法: 使用MSYS或Cygwin中的现有配置脚本。 使用cmd.exe(windows shell)提供的mingw makefile。 你尝试了第一个(但我认为不够努力),并且第二个错了: 尝试传递
--host=i686-pc-mingw32
进行配置。脚本告诉你它检测到unix构建,这是非常错误的,正如你所看到的,它不起作用。 您也可以直接从cmd.exe使用
mingw32-make
来使用您找到的makefile.mingw。它应该工作正常。 尝试在主源目录中找到README或INSTALL文件。它应该告诉你该做什么,并且可能有一个特定于Windows的部分。     

要回复问题请先登录注册