2011-02-13 17 views
9

私はMinGWの/ MSYS誰かがMinGW/MSYSでfreetypeを正常にコンパイルしましたか?

でfreetypeにコンパイルしようとunsucessfulだがここで私は何をすべきかです:

cmd.exeから、私はMSYSに切り替える:その後、

C:\temp\freetype-2.3.5-1\src\freetype\2.3.5\freetype-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を設定した後、0を使用します。ソースをコンパイルする:

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. 

問題は、私はCygwinをインストールしていないので、奇妙であるのcygpath、のようです。

ヌーはを行い、コンパイル命令の任務ので、私はこれを検証:

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.を返します。 [OK]を

更新、私は問題にいくつかの探偵の調査を行っている、そして私がCygwinをインストールしていないため、問題がprecislyようです。 cygpathはunix-pathsをwindows-pathsに変換するCygWinユーティリティ(See here)であり、逆も同様です。

  • ./builds/unix/aclocal.m4
  • ./builds/unix/configure
  • ./builds/unix/:

    さて、¨find . -type f -exec grep -l cygpath {} \;cygpathが使用されているいくつかの場所を見つけます

  • ./patches/freetype-2.3.4.diff
  • ./builds/unix/unix-def.mk
  • unix-def.in ./patches/freetype-2.3.5/build S/UNIX/unix-def.mk
  • ./patches/freetype-2.3.5.diff

と私はビルドを修正するためにこれらの場所の1以上で何かを変更する必要があるだろうと思います。右? ./configure-buildプロセス全体についてより多くの知識を持っている人が、私にこの問題に関するヒントを与えることができることを願っています。

更新IIrubenvbの答えから、私はその後、./configure --build=i686-pc-mingw32を試し読み

TOP_DIR := $(shell cd $(TOP_DIR); cygpath -m `pwd`) 
builds/unix/unix-def.mk

その後、変更行を読んで行を削除することができ考え出し

RCTOOL_COMPILE = RCTOOL 

~

./builds/freetype.mk
RCTOOL_COMPILE = $(RCTOOL) 

ともc:\mingw\binhttp://gnuwin32.sourceforge.net/rctool.sh.txtをコピーする(が見つからないためrctool.shの奇妙なエラーが発生したため)、、その後makeでコンパイル処理を開始します。

さて、私は

./src/base/ftcalc.c:75:3: warning: 'FT_RoundFix' redeclared without dllimport attribute: previous dllimport ignored 

よう多く警告を得ているものの、ソースファイルのコンパイルは、最後の完全な(少なくとも部分的)に見えた。しかし、リンカは、* .oのをリンクすることができませんファイルは

のように多くあります。
C:\temp\freetype-2.3.5-1\src\freetype\2.3.5\freetype-2.3.5/src/base/ftinit.c:89: undefined reference to `_imp__FT_Add_Module' 

私はコンパイル警告がリンカエラーとは無関係ではないと思います。

だから今は何ですか?一般的に

答えて

4

、Windows上でUNIX/Linuxのソフトウェアをコンパイルすると、2つの道を行くことができます。

  1. は、既存のMSYSかのCygwinからconfigureスクリプトを使用してください。

  2. cmd.exe(Windowsシェル)から提供されているmingwメイクファイルを使用してください。

あなたが最初に試みた(しかし、私は十分に懸命にないと思います)、2つ目間違っていた:

  1. 設定するには、--host=i686-pc-mingw32を渡して試してみてください。このスクリプトはUNIXビルドを検出したことを伝えています。これはひどく間違っており、わかるように動作しません。

  2. mingw32-makeをcmd.exeから直接使用して、見つけたmakefile.mingwを使用することもできます。それは正常に動作するはずです。

メインソースディレクトリにREADMEファイルまたはINSTALLファイルを配置してください。それはあなたに何をすべきかを教えて、おそらくWindows固有のセクションを持っているはずです。

+0

貴重なご協力をいただきありがとうございます。残念なことに、いずれのオプションも変更されていないが、両方とも、欠落している 'cygpath'に関連する同じエラーを生成する。私はREADME(実際にはINSTALL.UNIX *と* UPGRADE.UNIX *と呼ばれ、どちらもMinGW/MSYS用に明示されています)を見出し、基本的なことを私に言いました。私は(私はすでに4〜5時間過ごしましたが)十分に頑張っていないと主張していませんが、全体のポイントではありません。異なるプラットフォームについて心配する必要はありません。 –

+1

さて、cygpathはmsys環境では必要ありません。 mingw32-makeを使用してWindowsコンソール(cmd.exe)からmingwメイクファイルを使用しても問題ありませんか? – rubenvb

+0

私はcmd.exeを開き、 'C:\ temp \ freetype-2.3.5-1 \ src \ freetype \ 2.3.5 \ freetype-2.3.5'にcdして' mingw32-make.exe -f Makefile.mingw'は、たくさんの行を印刷した後に、最終的に 'mingw32-make:***'ターゲット 'MFSED'を作るためのルールがなく、 'all 'が必要です。停止.' –

関連する問題